diff options
408 files changed, 13889 insertions, 6628 deletions
@@ -1,3 +1,362 @@ +Changes in version 0.2.8.1-alpha - 2016-02-04 + Tor 0.2.8.1-alpha is the first alpha release in its series. It + includes numerous small features and bugfixes against previous Tor + versions, and numerous small infrastructure improvements. The most + notable features are a set of improvements to the directory subsystem. + + o Major features (security, Linux): + - When Tor starts as root on Linux and is told to switch user ID, it + can now retain the capability to bind to low ports. By default, + Tor will do this only when it's switching user ID and some low + ports have been configured. You can change this behavior with the + new option KeepBindCapabilities. Closes ticket 8195. + + o Major features (directory system): + - When bootstrapping multiple consensus downloads at a time, use the + first one that starts downloading, and close the rest. This + reduces failures when authorities or fallback directories are slow + or down. Together with the code for feature 15775, this feature + should reduces failures due to fallback churn. Implements ticket + 4483. Patch by "teor". Implements IPv4 portions of proposal 210 by + "mikeperry" and "teor". + - Include a trial list of default fallback directories, based on an + opt-in survey of suitable relays. Doing this should make clients + bootstrap more quickly and reliably, and reduce the load on the + directory authorities. Closes ticket 15775. Patch by "teor". + Candidates identified using an OnionOO script by "weasel", "teor", + "gsathya", and "karsten". + - Previously only relays that explicitly opened a directory port + (DirPort) accepted directory requests from clients. Now all + relays, with and without a DirPort, accept and serve tunneled + directory requests that they receive through their ORPort. You can + disable this behavior using the new DirCache option. Closes + ticket 12538. + + o Major key updates: + - Update the V3 identity key for the dannenberg directory authority: + it was changed on 18 November 2015. Closes task 17906. Patch + by "teor". + + o Minor features (security, clock): + - Warn when the system clock appears to move back in time (when the + state file was last written in the future). Tor doesn't know that + consensuses have expired if the clock is in the past. Patch by + "teor". Implements ticket 17188. + + o Minor features (security, exit policies): + - ExitPolicyRejectPrivate now rejects more private addresses by + default. Specifically, it now rejects the relay's outbound bind + addresses (if configured), and the relay's configured port + addresses (such as ORPort and DirPort). Fixes bug 17027; bugfix on + 0.2.0.11-alpha. Patch by "teor". + + o Minor features (security, memory erasure): + - Set the unused entries in a smartlist to NULL. This helped catch + a (harmless) bug, and shouldn't affect performance too much. + Implements ticket 17026. + - Use SecureMemoryWipe() function to securely clean memory on + Windows. Previously we'd use OpenSSL's OPENSSL_cleanse() function. + Implements feature 17986. + - Use explicit_bzero or memset_s when present. Previously, we'd use + OpenSSL's OPENSSL_cleanse() function. Closes ticket 7419; patches + from <logan@hackers.mu> and <selven@hackers.mu>. + - Make memwipe() do nothing when passed a NULL pointer or buffer of + zero size. Check size argument to memwipe() for underflow. Fixes + bug 18089; bugfix on 0.2.3.25 and 0.2.4.6-alpha. Reported by "gk", + patch by "teor". + + o Minor features (security, RNG): + - Adjust Tor's use of OpenSSL's RNG APIs so that they absolutely, + positively are not allowed to fail. Previously we depended on + internal details of OpenSSL's behavior. Closes ticket 17686. + - Never use the system entropy output directly for anything besides + seeding the PRNG. When we want to generate important keys, instead + of using system entropy directly, we now hash it with the PRNG + stream. This may help resist certain attacks based on broken OS + entropy implementations. Closes part of ticket 17694. + - Use modern system calls (like getentropy() or getrandom()) to + generate strong entropy on platforms that have them. Closes + ticket 13696. + + o Minor features (accounting): + - Added two modes to the AccountingRule option: One for limiting + only the number of bytes sent ("AccountingRule out"), and one for + limiting only the number of bytes received ("AccountingRule in"). + Closes ticket 15989; patch from "unixninja92". + + o Minor features (build): + - Since our build process now uses "make distcheck", we no longer + force "make dist" to depend on "make check". Closes ticket 17893; + patch from "cypherpunks." + - Tor now builds successfully with the recent OpenSSL 1.1 + development branch, and with the latest LibreSSL. Closes tickets + 17549, 17921, and 17984. + + o Minor features (controller): + - Adds the FallbackDir entries to 'GETINFO config/defaults'. Closes + tickets 16774 and 17817. Patch by George Tankersley. + - New 'GETINFO hs/service/desc/id/' command to retrieve a hidden + service descriptor from a service's local hidden service + descriptor cache. Closes ticket 14846. + - Add 'GETINFO exit-policy/reject-private/[default,relay]', so + controllers can examine the the reject rules added by + ExitPolicyRejectPrivate. This makes it easier for stem to display + exit policies. + + o Minor features (crypto): + - Add SHA512 support to crypto.c. Closes ticket 17663; patch from + George Tankersley. + - Add SHA3 and SHAKE support to crypto.c. Closes ticket 17783. + - When allocating a digest state object, allocate no more space than + we actually need. Previously, we would allocate as much space as + the state for the largest algorithm would need. This change saves + up to 672 bytes per circuit. Closes ticket 17796. + - Improve performance when hashing non-multiple of 8 sized buffers, + based on Andrew Moon's public domain SipHash-2-4 implementation. + Fixes bug 17544; bugfix on 0.2.5.3-alpha. + + o Minor features (directory downloads): + - Wait for busy authorities and fallback directories to become non- + busy when bootstrapping. (A similar change was made in 6c443e987d + for directory caches chosen from the consensus.) Closes ticket + 17864; patch by "teor". + - Add UseDefaultFallbackDirs, which enables any hard-coded fallback + directory mirrors. The default is 1; set it to 0 to disable + fallbacks. Implements ticket 17576. Patch by "teor". + + o Minor features (geoip): + - Update geoip and geoip6 to the January 5 2016 Maxmind GeoLite2 + Country database. + + o Minor features (IPv6): + - Add an argument 'ipv6=address:orport' to the DirAuthority and + FallbackDir torrc options, to specify an IPv6 address for an + authority or fallback directory. Add hard-coded ipv6 addresses for + directory authorities that have them. Closes ticket 17327; patch + from Nick Mathewson and "teor". + - Add address policy assume_action support for IPv6 addresses. + - Limit IPv6 mask bits to 128. + - Warn when comparing against an AF_UNSPEC address in a policy, it's + almost always a bug. Closes ticket 17863; patch by "teor". + - Allow users to configure directory authorities and fallback + directory servers with IPv6 addresses and ORPorts. Resolves + ticket 6027. + - routerset_parse now accepts IPv6 literal addresses. Fixes bug + 17060; bugfix on 0.2.1.3-alpha. Patch by "teor". + - Make tor_ersatz_socketpair work on IPv6-only systems. Fixes bug + 17638; bugfix on 0.0.2pre8. Patch by "teor". + + o Minor features (logging): + - When logging to syslog, allow a tag to be added to the syslog + identity (the string prepended to every log message). The tag can + be configured with SyslogIdentityTag and defaults to none. Setting + it to "foo" will cause logs to be tagged as "Tor-foo". Closes + ticket 17194. + + o Minor features (portability): + - Use timingsafe_memcmp() where available. Closes ticket 17944; + patch from <logan@hackers.mu>. + + o Minor features (relay, address discovery): + - Add a family argument to get_interface_addresses_raw() and + subfunctions to make network interface address interogation more + efficient. Now Tor can specifically ask for IPv4, IPv6 or both + types of interfaces from the operating system. Resolves + ticket 17950. + - When get_interface_address6_list(.,AF_UNSPEC,.) is called and + fails to enumerate interface addresses using the platform-specific + API, have it rely on the UDP socket fallback technique to try and + find out what IP addresses (both IPv4 and IPv6) our machine has. + Resolves ticket 17951. + + o Minor features (replay cache): + - The replay cache now uses SHA256 instead of SHA1. Implements + feature 8961. Patch by "teor", issue reported by "rransom". + + o Minor features (unix file permissions): + - Defer creation of Unix sockets until after setuid. This avoids + needing CAP_CHOWN and CAP_FOWNER when using systemd's + CapabilityBoundingSet, or chown and fowner when using SELinux. + Implements part of ticket 17562. Patch from Jamie Nguyen. + - If any directory created by Tor is marked as group readable, the + filesystem group is allowed to be either the default GID or the + root user. Allowing root to read the DataDirectory prevents the + need for CAP_READ_SEARCH when using systemd's + CapabilityBoundingSet, or dac_read_search when using SELinux. + Implements part of ticket 17562. Patch from Jamie Nguyen. + - Introduce a new DataDirectoryGroupReadable option. If it is set to + 1, the DataDirectory will be made readable by the default GID. + Implements part of ticket 17562. Patch from Jamie Nguyen. + + o Minor bugfixes (accounting): + - The max bandwidth when using 'AccountRule sum' is now correctly + logged. Fixes bug 18024; bugfix on 0.2.6.1-alpha. Patch + from "unixninja92". + + o Minor bugfixes (code correctness): + - When closing an entry connection, generate a warning if we should + have sent an end cell for it but we haven't. Fixes bug 17876; + bugfix on 0.2.3.2-alpha. + - Assert that allocated memory held by the reputation code is freed + according to its internal counters. Fixes bug 17753; bugfix + on tor-0.1.1.1-alpha. + - Assert when the TLS contexts fail to initialize. Fixes bug 17683; + bugfix on 0.0.6. + + o Minor bugfixes (compilation): + - Mark all object files that include micro-revision.i as depending + on it, so as to make parallel builds more reliable. Fixes bug + 17826; bugfix on 0.2.5.1-alpha. + - Don't try to use the pthread_condattr_setclock() function unless + it actually exists. Fixes compilation on NetBSD-6.x. Fixes bug + 17819; bugfix on 0.2.6.3-alpha. + - Fix backtrace compilation on FreeBSD. Fixes bug 17827; bugfix + on tor-0.2.5.2-alpha. + - Fix compilation of sandbox.c with musl-libc. Fixes bug 17347; + bugfix on 0.2.5.1-alpha. Patch from 'jamestk'. + - Fix search for libevent libraries on OpenBSD (and other systems + that install libevent 1 and libevent 2 in parallel). Fixes bug + 16651; bugfix on 0.1.0.7-rc. Patch from "rubiate". + - Isolate environment variables meant for tests from the rest of the + build system. Fixes bug 17818; bugfix on tor-0.2.7.3-rc. + - Replace usage of 'INLINE' with 'inline'. Fixes bug 17804; bugfix + on tor-0.0.2pre8. + - Remove config.log only from make distclean, not from make clean. + Fixes bug 17924; bugfix on 0.2.4.1-alpha. + + o Minor bugfixes (crypto): + - Check the return value of HMAC() and assert on failure. Fixes bug + 17658; bugfix on 0.2.3.6-alpha. Patch by "teor". + + o Minor bugfixes (fallback directories): + - Mark fallbacks as "too busy" when they return a 503 response, + rather than just marking authorities. Fixes bug 17572; bugfix on + 0.2.4.7-alpha. Patch by "teor". + + o Minor bugfixes (IPv6): + - Update the limits in max_dl_per_request for IPv6 address length. + Fixes bug 17573; bugfix on 0.2.1.5-alpha. + + o Minor bugfixes (linux seccomp2 sandbox): + - Fix a crash when using offline master ed25519 keys with the Linux + seccomp2 sandbox enabled. Fixes bug 17675; bugfix on 0.2.7.3-alpha. + + o Minor bugfixes (logging): + - In log messages that include a function name, use __FUNCTION__ + instead of __PRETTY_FUNCTION__. In GCC, these are synonymous, but + with clang __PRETTY_FUNCTION__ has extra information we don't + need. Fixes bug 16563; bugfix on 0.0.2pre8. Fix by Tom van + der Woerdt. + - Remove needless quotes from a log message about unparseable + addresses. Fixes bug 17843; bugfix on 0.2.3.3-alpha. + + o Minor bugfixes (portability): + - Remove an #endif from configure.ac so that we correctly detect the + presence of in6_addr.s6_addr32. Fixes bug 17923; bugfix + on 0.2.0.13-alpha. + + o Minor bugfixes (relays): + - Check that both the ORPort and DirPort (if present) are reachable + before publishing a relay descriptor. Otherwise, relays publish a + descriptor with DirPort 0 when the DirPort reachability test takes + longer than the ORPort reachability test. Fixes bug 18050; bugfix + on 0.1.0.1-rc. Reported by "starlight", patch by "teor". + + o Minor bugfixes (relays, hidden services): + - Refuse connection requests to private OR addresses unless + ExtendAllowPrivateAddresses is set. Previously, tor would connect, + then refuse to send any cells to a private address. Fixes bugs + 17674 and 8976; bugfix on 0.2.3.21-rc. Patch by "teor". + + o Minor bugfixes (safe logging): + - When logging a malformed hostname received through socks4, scrub + it if SafeLogging says we should. Fixes bug 17419; bugfix + on 0.1.1.16-rc. + + o Minor bugfixes (statistics code): + - Consistently check for overflow in round_*_to_next_multiple_of + functions, and add unit tests with additional and maximal values. + Fixes part of bug 13192; bugfix on 0.2.2.1-alpha. + - Handle edge cases in the laplace functions: avoid division by + zero, avoid taking the log of zero, and silence clang type + conversion warnings using round and trunc. Add unit tests for edge + cases with maximal values. Fixes part of bug 13192; bugfix + on 0.2.6.2-alpha. + + o Minor bugfixes (testing): + - The test for log_heartbeat was incorrectly failing in timezones + with non-integer offsets. Instead of comparing the end of the time + string against a constant, compare it to the output of + format_local_iso_time when given the correct input. Fixes bug + 18039; bugfix on 0.2.5.4-alpha. + - Make unit tests pass on IPv6-only systems, and systems without + localhost addresses (like some FreeBSD jails). Fixes bug 17632; + bugfix on 0.2.7.3-rc. Patch by "teor". + - Fix a memory leak in the ntor test. Fixes bug 17778; bugfix + on 0.2.4.8-alpha. + - Check the full results of SHA256 and SHA512 digests in the unit + tests. Bugfix on 0.2.2.4-alpha. Patch by "teor". + + o Code simplification and refactoring: + - Move logging of redundant policy entries in + policies_parse_exit_policy_internal into its own function. Closes + ticket 17608; patch from "juce". + - Extract the more complicated parts of circuit_mark_for_close() + into a new function that we run periodically before circuits are + freed. This change removes more than half of the functions + currently in the "blob". Closes ticket 17218. + - Clean up a little duplicated code in + crypto_expand_key_material_TAP(). Closes ticket 17587; patch + from "pfrankw". + - Decouple the list of streams waiting to be attached to circuits + from the overall connection list. This change makes it possible to + attach streams quickly while simplifying Tor's callgraph and + avoiding O(N) scans of the entire connection list. Closes + ticket 17590. + - When a direct directory request fails immediately on launch, + instead of relaunching that request from inside the code that + launches it, instead mark the connection for teardown. This change + simplifies Tor's callback and prevents the directory-request + launching code from invoking itself recursively. Closes + ticket 17589 + - Remove code for configuring OpenSSL dynamic locks; OpenSSL doesn't + use them. Closes ticket 17926. + + o Documentation: + - Add a description of the correct use of the '--keygen' command- + line option. Closes ticket 17583; based on text by 's7r'. + - Document the minimum HeartbeatPeriod value. Closes ticket 15638. + - Explain actual minima for BandwidthRate. Closes ticket 16382. + - Fix a minor formatting typo in the manpage. Closes ticket 17791. + - Mention torspec URL in the manpage and point the reader to it + whenever we mention a document that belongs in torspce. Fixes + issue 17392. + + o Removed features: + - Remove client-side support for connecting to Tor relays running + versions of Tor before 0.2.3.6-alpha. These relays didn't support + the v3 TLS handshake protocol, and are no longer allowed on the + Tor network. Implements the client side of ticket 11150. Based on + patches by Tom van der Woerdt. + + o Testing: + - Add unit tests to check for common RNG failure modes, such as + returning all zeroes, identical values, or incrementing values + (OpenSSL's rand_predictable feature). Patch by "teor". + - Log more information when the backtrace tests fail. Closes ticket + 17892. Patch from "cypherpunks." + - Always test both ed25519 backends, so that we can be sure that our + batch-open replacement code works. Part of ticket 16794. + - Cover dns_resolve_impl() in dns.c with unit tests. Implements a + portion of ticket 16831. + - More unit tests for compat_libevent.c, procmon.c, tortls.c, + util_format.c, directory.c, and options_validate.c. Closes tickets + 17075, 17082, 17084, 17003, and 17076 respectively. Patches from + Ola Bini. + - Unit tests for directory_handle_command_get. Closes ticket 17004. + Patch from Reinaldo de Souza Jr. + + Changes in version 0.2.7.6 - 2015-12-10 Tor version 0.2.7.6 fixes a major bug in entry guard selection, as well as a minor bug in hidden service reliability. @@ -1041,6 +1400,30 @@ Changes in version 0.2.4.27 - 2015-04-06 Resolves ticket 15515. +Changes in version 0.2.5.12 - 2015-04-06 + Tor 0.2.5.12 backports two fixes from 0.2.6.7 for security issues that + could be used by an attacker to crash hidden services, or crash clients + visiting hidden services. Hidden services should upgrade as soon as + possible; clients should upgrade whenever packages become available. + + This release also backports a simple improvement to make hidden + services a bit less vulnerable to denial-of-service attacks. + + o Major bugfixes (security, hidden service): + - Fix an issue that would allow a malicious client to trigger an + assertion failure and halt a hidden service. Fixes bug 15600; + bugfix on 0.2.1.6-alpha. Reported by "disgleirio". + - Fix a bug that could cause a client to crash with an assertion + failure when parsing a malformed hidden service descriptor. Fixes + bug 15601; bugfix on 0.2.1.5-alpha. Found by "DonnchaC". + + o Minor features (DoS-resistance, hidden service): + - Introduction points no longer allow multiple INTRODUCE1 cells to + arrive on the same circuit. This should make it more expensive for + attackers to overwhelm hidden services with introductions. + Resolves ticket 15515. + + Changes in version 0.2.6.7 - 2015-04-06 Tor 0.2.6.7 fixes two security issues that could be used by an attacker to crash hidden services, or crash clients visiting hidden @@ -13,7 +13,7 @@ Tor is distributed under this license: Copyright (c) 2001-2004, Roger Dingledine Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson -Copyright (c) 2007-2015, The Tor Project, Inc. +Copyright (c) 2007-2016, The Tor Project, Inc. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are diff --git a/Makefile.am b/Makefile.am index fc9f7b27ba..92ba2b868d 100644 --- a/Makefile.am +++ b/Makefile.am @@ -3,10 +3,6 @@ # Copyright (c) 2007-2015, The Tor Project, Inc. # See LICENSE for licensing information -# "foreign" means we don't follow GNU package layout standards -# 1.9 means we require automake vesion 1.9 -AUTOMAKE_OPTIONS = foreign 1.9 subdir-objects - ACLOCAL_AMFLAGS = -I m4 noinst_LIBRARIES= @@ -42,7 +38,11 @@ EXTRA_DIST+= \ if COVERAGE_ENABLED TEST_CFLAGS=-fno-inline -fprofile-arcs -ftest-coverage +if DISABLE_ASSERTS_IN_UNIT_TESTS +TEST_CPPFLAGS=-DTOR_UNIT_TESTS -DTOR_COVERAGE -DDISABLE_ASSERTS_IN_UNIT_TESTS +else TEST_CPPFLAGS=-DTOR_UNIT_TESTS -DTOR_COVERAGE +endif TEST_NETWORK_FLAGS=--coverage --hs-multi-client 1 else TEST_CFLAGS= @@ -134,10 +134,10 @@ need-stem-path: exit 1; \ fi -test-stem: need-stem-path $(TESTING_TOR_BINARY) +test-stem: need-stem-path all @$(PYTHON) "$$STEM_SOURCE_DIR"/run_tests.py --tor $(TESTING_TOR_BINARY) --all --log notice --target RUN_ALL; -test-stem-full: need-stem-path $(TESTING_TOR_BINARY) +test-stem-full: need-stem-path all @$(PYTHON) "$$STEM_SOURCE_DIR"/run_tests.py --tor $(TESTING_TOR_BINARY) --all --log notice --target RUN_ALL,ONLINE -v; test-full: need-stem-path need-chutney-path check test-network test-stem diff --git a/acinclude.m4 b/acinclude.m4 index 72593881ed..7b1aab2f99 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -109,7 +109,7 @@ if test -f /etc/debian_version && test x"$tor_$1_$2_debian" != x; then fi fi if test -f /etc/fedora-release && test x"$tor_$1_$2_redhat" != x; then - AC_WARN([On Fedora Core, you can install$h $1 using "yum install $tor_$1_$2_redhat"]) + AC_WARN([On Fedora, you can install$h $1 using "dnf install $tor_$1_$2_redhat"]) if test x"$tor_$1_$2_redhat" != x"$tor_$1_devpkg_redhat"; then AC_WARN([ You will probably need to install $tor_$1_devpkg_redhat too.]) fi diff --git a/changes/11150 b/changes/11150 deleted file mode 100644 index b4d40ed07c..0000000000 --- a/changes/11150 +++ /dev/null @@ -1,6 +0,0 @@ - o Removed features: - - Remove client-side support for connecting to Tor servers running - versions of Tor before 0.2.3.6-alpha. These servers didn't - support the v3 TLS handshake protocol, and are no longer allowed - on the Tor network. Implements the client side of ticket - 11150. Based on patches by Tom van der Woerdt. diff --git a/changes/17004 b/changes/17004 deleted file mode 100644 index 1dc9a237d4..0000000000 --- a/changes/17004 +++ /dev/null @@ -1,3 +0,0 @@ - o Testing: - - Unit tests for directory_handle_command_get. Closes ticket 17004. - Patch from Reinaldo de Souza Jr. diff --git a/changes/17075 b/changes/17075 deleted file mode 100644 index a91ac673e6..0000000000 --- a/changes/17075 +++ /dev/null @@ -1,3 +0,0 @@ - o Testing: - - More unit tests for compat_libevent.c. Closes ticket 17075. - Patch from Ola Bini. diff --git a/changes/17078 b/changes/17078 deleted file mode 100644 index af02877898..0000000000 --- a/changes/17078 +++ /dev/null @@ -1,3 +0,0 @@ - o Testing: - - More unit tests for procmon.c. Closes ticket 17078. - Patch from Ola Bini. diff --git a/changes/17082 b/changes/17082 deleted file mode 100644 index 30ed01473e..0000000000 --- a/changes/17082 +++ /dev/null @@ -1,3 +0,0 @@ - o Testing: - - More unit tests for tortls.c. Closes ticket 17082. - Patch from Ola Bini. diff --git a/changes/17084 b/changes/17084 deleted file mode 100644 index 361e26f264..0000000000 --- a/changes/17084 +++ /dev/null @@ -1,3 +0,0 @@ - o Testing: - - More unit tests for util_format.c. Closes ticket 17084. - Patch from Ola Bini. diff --git a/changes/17573 b/changes/17573 deleted file mode 100644 index fe1fd1c027..0000000000 --- a/changes/17573 +++ /dev/null @@ -1,3 +0,0 @@ - o Minor bigfixes (IPv6): - - Update the limits in max_dl_per_request for IPv6 address - length. Closes ticket 17573. diff --git a/changes/17826 b/changes/17826 deleted file mode 100644 index 7d0a17afee..0000000000 --- a/changes/17826 +++ /dev/null @@ -1,5 +0,0 @@ - o Minor bugfixes (build): - - Mark all object files that include micro-revision.i as depending on - it, so as to make our build more reliable with parallel builds. - Fixes bug 17826; bugfix on 0.2.5.1-alpha. - diff --git a/changes/17926 b/changes/17926 deleted file mode 100644 index 09bdbbeae7..0000000000 --- a/changes/17926 +++ /dev/null @@ -1,3 +0,0 @@ - o Removed code: - - Remove code for OpenSSL dynamic locks; OpenSSL doesn't use them. - Closes ticket 17926. diff --git a/changes/17944 b/changes/17944 deleted file mode 100644 index 0d8ed0a362..0000000000 --- a/changes/17944 +++ /dev/null @@ -1,3 +0,0 @@ - o Minor features (portability): - - Use timingsafe_memcmp() where available. Closes ticket 17944; - patch from <logan@hackers.mu>. diff --git a/changes/7419 b/changes/7419 deleted file mode 100644 index b792e8f6a0..0000000000 --- a/changes/7419 +++ /dev/null @@ -1,7 +0,0 @@ - o Minor enhancement (security): - - Use explicit_bzero when present - from <logan@hackers.mu>. - - Use memset_s when present - from <selven@hackers.mu> - - 625538405474972d627b26d7a250ea36 (: diff --git a/changes/assert_event_base b/changes/assert_event_base new file mode 100644 index 0000000000..b887795518 --- /dev/null +++ b/changes/assert_event_base @@ -0,0 +1,5 @@ + o Minor features (robustness): + - Exit immediately with an error message if the code attempts to + use libevent without having initialized it. This should resolve + some frequently-made mistakes in our unit tests. Closes ticket + 18241. diff --git a/changes/bug14821 b/changes/bug14821 new file mode 100644 index 0000000000..0920d1fffc --- /dev/null +++ b/changes/bug14821 @@ -0,0 +1,4 @@ + o Major bugfixes (compilation): + - Correctly repair hardened builds under the clang compiler. Previously, + our use of _FORTIFY_SOURCE would conflict with clang's address + sanitizer. Closes ticket 14821. diff --git a/changes/bug15638 b/changes/bug15638 deleted file mode 100644 index cf5d46983f..0000000000 --- a/changes/bug15638 +++ /dev/null @@ -1,2 +0,0 @@ - o Documentation: - - Document the minimum HeartbeatPeriod value. Closes ticket 15638. diff --git a/changes/bug16023 b/changes/bug16023 new file mode 100644 index 0000000000..7451e271a0 --- /dev/null +++ b/changes/bug16023 @@ -0,0 +1,4 @@ + o Minor feature (hidden service, control port) + - Add the onion address to the HS_DESC event for the UPLOADED action + both on success or failure. It was previously hardcoded with UNKNOWN. + Fixes #16023; diff --git a/changes/bug16382 b/changes/bug16382 deleted file mode 100644 index 8faee98ad8..0000000000 --- a/changes/bug16382 +++ /dev/null @@ -1,3 +0,0 @@ - o Documentation: - - Explain actual minima for BandwidthRate. Closes ticket 16382. - diff --git a/changes/bug16563 b/changes/bug16563 deleted file mode 100644 index 19e59b3821..0000000000 --- a/changes/bug16563 +++ /dev/null @@ -1,6 +0,0 @@ - o Minor bugfixes (logging): - - In log messages that include a function name, use __FUNCTION__ instead - of __PRETTY_FUNCTION__. In GCC, these are synonymous, but with clang - __PRETTY_FUNCTION__ has extra information we don't need. - Fixes bug 16563; bugfix on 0.0.2pre8. Fix by Tom van der Woerdt. -
\ No newline at end of file diff --git a/changes/bug16651 b/changes/bug16651 deleted file mode 100644 index 096daeaf70..0000000000 --- a/changes/bug16651 +++ /dev/null @@ -1,5 +0,0 @@ - o Minor bugfixes (compilation): - - - Fix search for libevent libraries on OpenBSD (and similar systems - which install libevent 1 and libevent 2 in parallel). Resolves - ticket 16651. Patch from "rubiate". diff --git a/changes/bug16794_ed b/changes/bug16794_ed deleted file mode 100644 index a43c401ed4..0000000000 --- a/changes/bug16794_ed +++ /dev/null @@ -1,3 +0,0 @@ - o Testing: - - Always test both ed25519 backends, so that we can be sure that - our batch-open replacement code works. Part of ticket 16794. diff --git a/changes/bug16825 b/changes/bug16825 new file mode 100644 index 0000000000..75c5627efd --- /dev/null +++ b/changes/bug16825 @@ -0,0 +1,7 @@ + o Minor bugfixes: + - Count receipt of new microdescriptors as progress towards + bootstrapping. Now, when a user who has set EntryNodes finishes + bootstrapping, Tor automatically repopulates the guard set based + on this new directory information. Fixes bug 16825; bugfix on + 0.2.3.1-alpha. + diff --git a/changes/bug17003 b/changes/bug17003 deleted file mode 100644 index 8125f0e402..0000000000 --- a/changes/bug17003 +++ /dev/null @@ -1,3 +0,0 @@ - o Testing: - - New tests for directory.c functions. Closes ticket 17003. Patch - from Ola Bini. diff --git a/changes/bug17026 b/changes/bug17026 deleted file mode 100644 index 8b1ce3c61b..0000000000 --- a/changes/bug17026 +++ /dev/null @@ -1,5 +0,0 @@ - o Minor features: - - Set unused entires in a smartlist to NULL. This helped catch a - (harmless) bug, and shouldn't affect performance too much. - Implements ticket 17026. - diff --git a/changes/bug17027-reject-private-bind-port b/changes/bug17027-reject-private-bind-port deleted file mode 100644 index abc1431c9a..0000000000 --- a/changes/bug17027-reject-private-bind-port +++ /dev/null @@ -1,7 +0,0 @@ - o Minor bug fixes (security, exit policies): - - ExitPolicyRejectPrivate rejects more private addresses by default: - * the relay's outbound bind addresses (if configured), and - * the relay's configured port addresses (such as ORPort and DirPort). - Resolves ticket 17027. Patch by "teor". - Patch on 42b8fb5a1523 (11 Nov 2007), released in 0.2.0.11-alpha, - and on 0.2.7.3-rc. diff --git a/changes/bug17194 b/changes/bug17194 deleted file mode 100644 index 26549b307f..0000000000 --- a/changes/bug17194 +++ /dev/null @@ -1,7 +0,0 @@ - o Minor feature: - - When logging to syslog, allow a tag to be added to the syslog - identity ("Tor"), i.e. the string prepended to every log message. - The tag can be configured by setting SyslogIdentityTag and defaults - to none. Setting it to "foo" will cause logs to be tagged as - "Tor-foo". - diff --git a/changes/bug17347 b/changes/bug17347 deleted file mode 100644 index 487b1320e2..0000000000 --- a/changes/bug17347 +++ /dev/null @@ -1,4 +0,0 @@ - o Minor bugfixes (compilation): - - Fix compilation of sandbox.c with musl-libc. - Fixes bug 17347; bugfix on 0.2.5.1-alpha. - Patch from 'jamestk'. diff --git a/changes/bug17419 b/changes/bug17419 deleted file mode 100644 index 8ad8edd37b..0000000000 --- a/changes/bug17419 +++ /dev/null @@ -1,4 +0,0 @@ - - o Minor bugfixes: - - When logging a malformed hostname received through socks4, scrub it - if SafeLogging says we should. Fixes bug 17419; bugfix on 0.1.1.16-rc. diff --git a/changes/bug17544 b/changes/bug17544 deleted file mode 100644 index 4316d0709c..0000000000 --- a/changes/bug17544 +++ /dev/null @@ -1,4 +0,0 @@ - o Minor bugfix (SipHash-2-4 performance): - - Improve performance when hashing non-multiple of 8 sized buffers, - based on Andrew Moon's Public Domain SipHash-2-4 implementation. - Fixes bug 17544; bugfix on 0.2.5.3-alpha. diff --git a/changes/bug17549 b/changes/bug17549 deleted file mode 100644 index 3650608141..0000000000 --- a/changes/bug17549 +++ /dev/null @@ -1,3 +0,0 @@ - o Minor bugfixes (compilation): - - Repair compilation with the most recent (unreleased, alpha) - vesions of OpenSSL 1.1. Fixes bug 17549. diff --git a/changes/bug17562-DataDirectoryGroupReadable b/changes/bug17562-DataDirectoryGroupReadable deleted file mode 100644 index 524e5ef28a..0000000000 --- a/changes/bug17562-DataDirectoryGroupReadable +++ /dev/null @@ -1,3 +0,0 @@ - o Minor bug fixes: - - Introduce DataDirectoryGroupReadable boolean. If set to 1, the - DataDirectory will be made readable by the default GID. diff --git a/changes/bug17562-allow-root-group-read b/changes/bug17562-allow-root-group-read deleted file mode 100644 index 7a0903c662..0000000000 --- a/changes/bug17562-allow-root-group-read +++ /dev/null @@ -1,6 +0,0 @@ - o Minor bug fixes: - - If any directory created by Tor is marked as group readable, the - filesystem group is allowed to be either the default GID or the root - user. Allowing root to read the DataDirectory prevents the need for - CAP_READ_SEARCH when using systemd's CapabilityBoundingSet, or - dac_read_search when using SELinux. diff --git a/changes/bug17562-defer-unix-socket-creation b/changes/bug17562-defer-unix-socket-creation deleted file mode 100644 index f1896c044a..0000000000 --- a/changes/bug17562-defer-unix-socket-creation +++ /dev/null @@ -1,4 +0,0 @@ - o Minor bug fixes: - - Defer creation of Unix sockets until after setuid. This avoids needing - CAP_CHOWN and CAP_FOWNER when using systemd's CapabilityBoundingSet, or - chown and fowner when using SELinux. diff --git a/changes/bug17572-fallback-by-digest b/changes/bug17572-fallback-by-digest deleted file mode 100644 index 3fba123360..0000000000 --- a/changes/bug17572-fallback-by-digest +++ /dev/null @@ -1,5 +0,0 @@ - o Minor bugfix (fallback directories): - - Mark fallbacks as "too busy" when they return a 503 response, - rather than just marking authorities. - Fixes bug 17572; bugfix on 5c51b3f1f0d4 released in 0.2.4.7-alpha. - Patch by "teor". diff --git a/changes/bug17583 b/changes/bug17583 deleted file mode 100644 index d77d46759a..0000000000 --- a/changes/bug17583 +++ /dev/null @@ -1,4 +0,0 @@ - o Documentation: - - Add a description of the correct use of the '--keygen' command-line - option. Closes ticket 17583; based on text by 's7r'. - diff --git a/changes/bug17589 b/changes/bug17589 deleted file mode 100644 index 91103276df..0000000000 --- a/changes/bug17589 +++ /dev/null @@ -1,7 +0,0 @@ - o Code simplificiation and refactoring: - - When a direct directory request fails immediately on launch, - instead of relaunching that request from inside the code that - launches it, instead mark the connection for teardown. This - change simplifies Tor's callback and prevents the directory- - request launching code from invoking itself recursively. - Closes ticket 17589.
\ No newline at end of file diff --git a/changes/bug17632-no-ipv4-no-localhost b/changes/bug17632-no-ipv4-no-localhost deleted file mode 100644 index 04622079d3..0000000000 --- a/changes/bug17632-no-ipv4-no-localhost +++ /dev/null @@ -1,7 +0,0 @@ - o Minor bugfix (unit tests): - - Make unit tests pass on IPv6-only systems, and systems without - localhost addresses (like some FreeBSD jails). - Fixes bug #17632; bugfix on unit tests in 0.2.7.3-rc. - c464a367728d was a partial fix for this issue in #17255; - it was released in unit tests in 0.2.7.4-rc. - Patch by "teor". diff --git a/changes/bug17638-ipv6-ersatz-socketpair b/changes/bug17638-ipv6-ersatz-socketpair deleted file mode 100644 index 6193065ff3..0000000000 --- a/changes/bug17638-ipv6-ersatz-socketpair +++ /dev/null @@ -1,5 +0,0 @@ - o Minor bugfix (IPv6 compatibility, unit tests): - - Make tor_ersatz_socketpair work on IPv6-only systems. - Fixes bug #17638; bugfix on a very early tor version, - earlier than 22dba27d8dd5 (23 Nov 2004) / svn:r2943. - Patch by "teor". diff --git a/changes/bug17675 b/changes/bug17675 deleted file mode 100644 index 8326a0b9e8..0000000000 --- a/changes/bug17675 +++ /dev/null @@ -1,4 +0,0 @@ - o Minor bugfixes (linux seccomp2 sandbox): - - Fix a crash when using offline master ed25519 keys with the - Linux seccomp2 sandbox enabled. Fixes bug 17675; bugfix on - 0.2.7.3-alpha. diff --git a/changes/bug17683 b/changes/bug17683 deleted file mode 100644 index e9d47513ab..0000000000 --- a/changes/bug17683 +++ /dev/null @@ -1,3 +0,0 @@ - o Minor bugfixes (TLS context): - - Assert when the TLS contexts fail to initialize. Fixes bug 17683; - bugfix on 0.0.6. diff --git a/changes/bug17686 b/changes/bug17686 deleted file mode 100644 index 8fa16c794b..0000000000 --- a/changes/bug17686 +++ /dev/null @@ -1,4 +0,0 @@ - o Minor features: - - Adjust Tor's use of OpenSSL's RNG APIs so that they absolutely, - positively are not allowed to fail. Previously we depended on - internals about OpenSSL behavior. Closes ticket 17686. diff --git a/changes/bug17694_strongest b/changes/bug17694_strongest deleted file mode 100644 index 0a8954a25e..0000000000 --- a/changes/bug17694_strongest +++ /dev/null @@ -1,6 +0,0 @@ - o Minor features (security): - - Never use the system entropy output directly for anything besides - seeding the PRNG. When we want to generate important keys, instead - of using system entropy directly, hash it with the PRNG stream. - This may help resist certain attacks based on broken OS entropy - implementations. Closes part of ticket 17694.
\ No newline at end of file diff --git a/changes/bug17724 b/changes/bug17724 deleted file mode 100644 index 7ace99eece..0000000000 --- a/changes/bug17724 +++ /dev/null @@ -1,4 +0,0 @@ - o Minor bug fixes (unit tests, hidden services): - - Avoid relying on malloc internals in test_rend_cache_purge. - Closes ticket 17724. Bug fix on ade5005853c1 and 5e9f2384cf0f, - not in any released version of Tor. Patch by "teor". diff --git a/changes/bug17732 b/changes/bug17732 new file mode 100644 index 0000000000..010645d3c9 --- /dev/null +++ b/changes/bug17732 @@ -0,0 +1,10 @@ + o Minor features (compilation): + - Note our minimum required autoconf/automake versions in the + appropriate locations. Closes ticket 17732. + + o Dependency updates: + - Tor now uses Autoconf version 2.63 or later, and Automake 1.11 or later + (released in 2008 and 2009 respectively). If you are building Tor from + the git repository instead of from the source distribution, and your + tools are older than this, you will need to upgrade. + Closes ticket 17732. diff --git a/changes/bug17753 b/changes/bug17753 deleted file mode 100644 index 7d227d856c..0000000000 --- a/changes/bug17753 +++ /dev/null @@ -1,4 +0,0 @@ - o Minor bugfixes (code correctness) - - Assert that allocated memory held by the reputation code is freed - according to its internal counters. Fixes bug 17753; bugfix on - tor-0.1.1.1-alpha. diff --git a/changes/bug17763 b/changes/bug17763 deleted file mode 100644 index d565d13a7d..0000000000 --- a/changes/bug17763 +++ /dev/null @@ -1,5 +0,0 @@ - o Minor bug fixes (exit policies): - - Consistently ignore multicast addresses when automatically - generating reject private exit policies. - Closes ticket 17763. Bug fix on 10a6390deb3c9, - not in any released version of Tor. Patch by "teor". diff --git a/changes/bug17776 b/changes/bug17776 deleted file mode 100644 index a949625baa..0000000000 --- a/changes/bug17776 +++ /dev/null @@ -1,6 +0,0 @@ - o Minor bugfixes (tests): - - Fix buffer over-reads in the directory tests. Fixes bug 17776; not in any - released version of Tor. - - Fix buffer over-reads in the rendcache tests. Fixes bug 17776; not in any - released version of Tor. - diff --git a/changes/bug17778 b/changes/bug17778 deleted file mode 100644 index 9844969a3b..0000000000 --- a/changes/bug17778 +++ /dev/null @@ -1,3 +0,0 @@ - o Minor bugfixes (tests): - - Fix a memory leak in the ntor test. Fixes bug 17778; bugfix on - 0.2.4.8-alpha. diff --git a/changes/bug17791 b/changes/bug17791 deleted file mode 100644 index f191012cd4..0000000000 --- a/changes/bug17791 +++ /dev/null @@ -1,4 +0,0 @@ - o Documentation: - - Fix a minor formatting typo in the manpage. Closes ticket - 17791. - diff --git a/changes/bug17804 b/changes/bug17804 deleted file mode 100644 index bd2a3cbdff..0000000000 --- a/changes/bug17804 +++ /dev/null @@ -1,3 +0,0 @@ - o Minor bugfixes (compilation): - - Replace usage of 'INLINE' with 'inline'. Fixes bug 17804; bugfix - on tor-0.0.2pre8. diff --git a/changes/bug17818 b/changes/bug17818 deleted file mode 100644 index 3d9afe329e..0000000000 --- a/changes/bug17818 +++ /dev/null @@ -1,3 +0,0 @@ - o Minor bugfixes (compilation): - - Isolate environment variables meant for tests from the rest of the - build system. Fixes bug 17818; bugfix on tor-0.2.7.3-rc. diff --git a/changes/bug17819 b/changes/bug17819 deleted file mode 100644 index 45c55f74b6..0000000000 --- a/changes/bug17819 +++ /dev/null @@ -1,4 +0,0 @@ - o Minor bugfixes (compilation): - - Don't try to use the pthrad_condattr_setclock() function unless - it actually exists. Fixes compilation on NetBSD-6.x. Fixes bug - 17819; bugfix on 0.2.6.3-alpha. diff --git a/changes/bug17827 b/changes/bug17827 deleted file mode 100644 index 04cd3b5977..0000000000 --- a/changes/bug17827 +++ /dev/null @@ -1,3 +0,0 @@ - o Minor bugfixes (compilation): - - Fix backtrace compilation on FreeBSD. Fixes bug 17827; bugfix on - tor-0.2.5.2-alpha. diff --git a/changes/bug17843 b/changes/bug17843 deleted file mode 100644 index 6cb16a0b6a..0000000000 --- a/changes/bug17843 +++ /dev/null @@ -1,3 +0,0 @@ - o Minor bugfixes (logging): - - Remove needless quotes from a log message about unparseable addresses. - Fixes bug 17843; bugfix on 0.2.3.3-alpha. diff --git a/changes/bug17852 b/changes/bug17852 new file mode 100644 index 0000000000..b36b55f9d6 --- /dev/null +++ b/changes/bug17852 @@ -0,0 +1,10 @@ + o Minor features (code hardening): + - Use tor_snprintf() and tor_vsnprintf() even in external and + low-level code, to harden against accidental failures to NUL- + terminate. Part of ticket 17852. Patch from 'jsturgix'. Found + with Flawfinder. + + o Minor bugfixes (private directory): + - Prevent a race condition when creating private directories. + Fixes part of bug 17852; bugfix on 0.2pre13. Part of ticket + 17852. Patch from 'jsturgix'. Found with Flawfinder. diff --git a/changes/bug17876 b/changes/bug17876 deleted file mode 100644 index 1bd3dd7c1b..0000000000 --- a/changes/bug17876 +++ /dev/null @@ -1,5 +0,0 @@ - o Minor bugfixes: - - When closing an entry connection, generate a warning if we should - have sent an end cell for it but we haven't. Fixes bug 17876; - bugfix on 0.2.3.2-alpha. - diff --git a/changes/bug17887 b/changes/bug17887 deleted file mode 100644 index 423c298bd5..0000000000 --- a/changes/bug17887 +++ /dev/null @@ -1,6 +0,0 @@ - o Minor fixes (fallback directories): - - Allow cached or outdated Onionoo data to be used to choose - fallback directories, as long as it's less than a day old. - Modify last modified date checks in preparation for Onionoo change - #16907. Closes ticket #17887. Patch by "teor". Not in any released - version of tor. diff --git a/changes/bug17888 b/changes/bug17888 deleted file mode 100644 index 04e40b1556..0000000000 --- a/changes/bug17888 +++ /dev/null @@ -1,6 +0,0 @@ - o Minor fixes (fallback directories): - - When selecting exits as fallback directories, don't reduce - their weights. (Several operators report having exits with - spare capacity.) - Closes ticket #17888. Patch by "teor". Not in any released - version of tor. diff --git a/changes/bug17892 b/changes/bug17892 deleted file mode 100644 index 73c26e9c94..0000000000 --- a/changes/bug17892 +++ /dev/null @@ -1,4 +0,0 @@ - o Minor features (testing): - - Log more information when the backtrace tests fail. - Closes ticket 17892. Patch from "cypherpunks." - diff --git a/changes/bug17893 b/changes/bug17893 deleted file mode 100644 index 06808c0017..0000000000 --- a/changes/bug17893 +++ /dev/null @@ -1,4 +0,0 @@ - o Minor features (build): - - Since our build process now uses 'make distcheck', we no longer force - "make dist" to depend on "make check". Closes ticket 17893; - patch from "cypherpunks." diff --git a/changes/bug17906 b/changes/bug17906 deleted file mode 100644 index fff76d1c59..0000000000 --- a/changes/bug17906 +++ /dev/null @@ -1,4 +0,0 @@ - o Minor features (authorities): - - Update the V3 identity key for dannenberg, it was changed on - 18 November 2015. - Closes task #17906. Patch by "teor". diff --git a/changes/bug17923 b/changes/bug17923 deleted file mode 100644 index ea39960711..0000000000 --- a/changes/bug17923 +++ /dev/null @@ -1,4 +0,0 @@ - o Minor bugfixes: - - Remove an #endif from configure.ac so that we correctly detect - the presence of in6_addr.s6_addr32. Fixes bug 17923; bugfix on - 0.2.0.13-alpha. diff --git a/changes/bug17924 b/changes/bug17924 deleted file mode 100644 index aa5cf58730..0000000000 --- a/changes/bug17924 +++ /dev/null @@ -1,4 +0,0 @@ - o Minor bugfixes (makefile): - - Remove config.log only from make distclean, not from - make clean. Fixes bug 17924; bugfix on 0.2.4.1-alpha. - diff --git a/changes/bug18035 b/changes/bug18035 deleted file mode 100644 index 31889f5723..0000000000 --- a/changes/bug18035 +++ /dev/null @@ -1,6 +0,0 @@ - o Minor fixes (fallback directories): - - Work around an issue where OnionOO supplies the entire history, - rather than the requested 120 days. Activate debug logging by - default. Fix other minor calculation and compatibility issues. - Closes ticket #18035. Patch by "starlight", merge fixes by - "teor". Not in any released version of tor. diff --git a/changes/bug18050 b/changes/bug18050 deleted file mode 100644 index ce24a7738a..0000000000 --- a/changes/bug18050 +++ /dev/null @@ -1,7 +0,0 @@ - o Minor fixes (relays): - - Check that both the ORPort and DirPort (if present) are reachable - before publishing a relay descriptor. Otherwise, relays publish a - descriptor with DirPort 0 when the DirPort reachability test takes - longer than the ORPort reachability test. - Closes bug #18050. Reported by "starlight", patch by "teor". - Bugfix on 0.1.0.1-rc, commit a1f1fa6ab on 27 Feb 2005. diff --git a/changes/bug18051 b/changes/bug18051 new file mode 100644 index 0000000000..1b11867d19 --- /dev/null +++ b/changes/bug18051 @@ -0,0 +1,4 @@ + o Minor bugfixes: + - When generating a URL for a directory server on an IPv6 address, + wrap the IPv6 address in square brackets. Fixes bug 18051; + bugfix on ?. Patch from Malek. diff --git a/changes/bug18089 b/changes/bug18089 deleted file mode 100644 index c1fb342f77..0000000000 --- a/changes/bug18089 +++ /dev/null @@ -1,6 +0,0 @@ - o Minor fixes (security): - - Make memwipe() do nothing when passed a NULL pointer - or zero size. Check size argument to memwipe() for underflow. - Closes bug #18089. Reported by "gk", patch by "teor". - Bugfix on 0.2.3.25 and 0.2.4.6-alpha (#7352), - commit 49dd5ef3 on 7 Nov 2012. diff --git a/changes/bug18116 b/changes/bug18116 new file mode 100644 index 0000000000..23ff8f7775 --- /dev/null +++ b/changes/bug18116 @@ -0,0 +1,3 @@ + o Major bugfixes: + - Correctly handle detaching circuits from cmuxes when doing + circuit_free_all() on shutdown again; fixes bug #18116. diff --git a/changes/bug18123 b/changes/bug18123 new file mode 100644 index 0000000000..1359b4ef67 --- /dev/null +++ b/changes/bug18123 @@ -0,0 +1,4 @@ + o Minor bugfixes (security, win32): + - Set SO_EXCLUSIVEADDRUSE on Win32 to avoid a local port-stealing + attack. + Fixes bug 18123; bugfix on all tor versions. Patch by "teor". diff --git a/changes/bug18162 b/changes/bug18162 new file mode 100644 index 0000000000..0844d6f62f --- /dev/null +++ b/changes/bug18162 @@ -0,0 +1,7 @@ + o Major bugfixes (security, pointers): + + - Avoid a difficult-to-trigger heap corruption attack when extending + a smartlist to contain over 16GB of pointers. Fixes bug #18162; + bugfix on Tor 0.1.1.11-alpha, which fixed a related bug + incompletely. Reported by Guido Vranken. + diff --git a/changes/bug18184 b/changes/bug18184 new file mode 100644 index 0000000000..af493df75f --- /dev/null +++ b/changes/bug18184 @@ -0,0 +1,5 @@ + o Removed platform support: + - Tor no longer attempts to support platforms where the "time_t" type + is unsigned. (To the best of our knowledge, only OpenVMS does this, + and Tor has never actually built on OpenVMS.) Closes ticket 18184. + diff --git a/changes/bug18208 b/changes/bug18208 new file mode 100644 index 0000000000..d6d194bb4d --- /dev/null +++ b/changes/bug18208 @@ -0,0 +1,5 @@ + o Minor bug fixes (exit policies, security): + - Refresh an exit relay's exit policy when interface addresses change. + Previously, tor only refreshed the exit policy when the configured + external address changed. + Closes ticket 18208 on tor 0.2.7.3. Patch by "teor". diff --git a/changes/bug18221 b/changes/bug18221 new file mode 100644 index 0000000000..afc240422a --- /dev/null +++ b/changes/bug18221 @@ -0,0 +1,3 @@ + o Minor features (crypto): + - Validate the Diffie-Hellman hard coded parameters and ensure that + p is a safe prime, and g is suitable. Closes ticket 18221. diff --git a/changes/bug18242 b/changes/bug18242 new file mode 100644 index 0000000000..e91f6d5eb3 --- /dev/null +++ b/changes/bug18242 @@ -0,0 +1,6 @@ + o Minor bugfixes (testing): + - We no longer disable assertions in the unit tests when coverage + is enabled. Instead, we require you to say --disable-asserts-in-tests + to the configure script if you need assertions disabled in the + unit tests (for example, if you want to perform branch coverage). + Fixes bug 18242; bugfix on 0.2.7.1-alpha. diff --git a/changes/bug18258 b/changes/bug18258 new file mode 100644 index 0000000000..00e122466f --- /dev/null +++ b/changes/bug18258 @@ -0,0 +1,12 @@ + o Code simplification and refactoring: + - Remove specialized code for non-inplace AES_CTR. 99% of our AES + is inplace, so there's no need to have a separate implementation + for the non-inplace code. Closes ticket 18258. Patch from + Malek. + + o New requirements: + - Tor no longer supports versions of OpenSSL with a broken + implementation of counter mode. (This bug was present in OpenSSL + 1.0.0, and was fixed in OpenSSL 1.0.0a.) Tor still detects, but + no longer runs with, these versions. + diff --git a/changes/bug18259 b/changes/bug18259 new file mode 100644 index 0000000000..1084b8f524 --- /dev/null +++ b/changes/bug18259 @@ -0,0 +1,4 @@ + o Code simplification and refactoring: + - Simplify return types for some crypto functions that can't + actually fail. Patch from Hassan Alsibyani. Closes ticket + 18259. diff --git a/changes/bug18261 b/changes/bug18261 new file mode 100644 index 0000000000..df4c74f337 --- /dev/null +++ b/changes/bug18261 @@ -0,0 +1,6 @@ + o Minor features (crypto): + - Fix a segfault during startup: If unix socket was configured as + listener (such as a ControlSocket or a SocksPort unix socket), and + tor was started as root but not configured to switch to another + user, tor would segfault while trying to string compare a NULL + value. Fixes bug 18261; bugfix on 0.2.8.1-alpha. Patch by weasel. diff --git a/changes/bug18296 b/changes/bug18296 new file mode 100644 index 0000000000..1e98200be9 --- /dev/null +++ b/changes/bug18296 @@ -0,0 +1,4 @@ + o Minor bugfixes (containers): + - If we somehow attempt to construct a heap with more than + 1073741822 elements, avoid an integer overflow when maintaining + the heap property. Fixes bug 18296; bugfix on 0.1.2.1-alpha. diff --git a/changes/bug18348 b/changes/bug18348 new file mode 100644 index 0000000000..03978eda19 --- /dev/null +++ b/changes/bug18348 @@ -0,0 +1,5 @@ + o Major bug fixes (relays, bridge clients): + - Ensure relays always allow IPv4 OR and Dir connections. + Ensure bridge clients use the address configured in the bridge line. + Fixes bug 18348; bugfix on 0.2.8.1-alpha. + Reported by sysrqb, patch by teor. diff --git a/changes/bug18374 b/changes/bug18374 new file mode 100644 index 0000000000..4764c53f56 --- /dev/null +++ b/changes/bug18374 @@ -0,0 +1,3 @@ + o Minor bugfixes (configuration): + - Fix a tiny memory leak when parsing a port configuration ending in + ":auto". Fixes bug 18374; bugfix on 0.2.3.3-alpha. diff --git a/changes/bug18384 b/changes/bug18384 new file mode 100644 index 0000000000..78befcabaa --- /dev/null +++ b/changes/bug18384 @@ -0,0 +1,5 @@ + o Minor bugfixes (crypto, static analysis): + - Silence spurious clang-scan warnings in the ed25519_donna code + by explicitly initialising some objects. + Fixes bug 18384; bugfix on 0f3eeca9 in 0.2.7.2-alpha. + Patch by "teor". diff --git a/changes/bug18426_18459 b/changes/bug18426_18459 new file mode 100644 index 0000000000..9059d6e47e --- /dev/null +++ b/changes/bug18426_18459 @@ -0,0 +1,4 @@ + o Documentation: + - Change build messages to refer to "Fedora" instead of "Fedora Core", + and "dnf" instead of "yum". Closes tickets 18459 and 18426. + Patches from "icanhasaccount" and "cypherpunks". diff --git a/changes/bug18448 b/changes/bug18448 new file mode 100644 index 0000000000..e328ce367a --- /dev/null +++ b/changes/bug18448 @@ -0,0 +1,6 @@ + o Minor features (build): + - Detect systems with FreeBSD-derived kernels (such as GNU/kFreeBSD) as + having possible IPfW support. Closes ticket 18448. Patch from + Steven Chamberlain. + + diff --git a/changes/bug4483-multiple-consensus-downloads b/changes/bug4483-multiple-consensus-downloads deleted file mode 100644 index 23d22a89c4..0000000000 --- a/changes/bug4483-multiple-consensus-downloads +++ /dev/null @@ -1,9 +0,0 @@ - o Major features (consensus downloads): - - Schedule multiple in-progress consensus downloads during client - bootstrap. Use the first one that starts downloading, close the - rest. This reduces failures when authorities are slow or down. - With #15775, it reduces failures due to fallback churn. - Implements #4483 (reduce failures when authorities are down). - Patch by "teor". - Implements IPv4 portions of proposal #210 by "mikeperry" and - "teor". diff --git a/changes/bug6027 b/changes/bug6027 deleted file mode 100644 index 5233876a49..0000000000 --- a/changes/bug6027 +++ /dev/null @@ -1,4 +0,0 @@ - o Minor features: - - Allow users to configure directory authorities and fallback - directory servers with IPv6 addresses and ORPorts. Resolves - ticket 6027. diff --git a/changes/build18490 b/changes/build18490 new file mode 100644 index 0000000000..466a133cb2 --- /dev/null +++ b/changes/build18490 @@ -0,0 +1,4 @@ + o Minor bugfixes (build): + - Do not link the unit tests against both the testing and non-testing + versions of the static libraries. Fixes bug 18490; bugfix on + 0.2.7.1-alpha. diff --git a/changes/check-crypto-errors b/changes/check-crypto-errors deleted file mode 100644 index e41862ca13..0000000000 --- a/changes/check-crypto-errors +++ /dev/null @@ -1,5 +0,0 @@ - o Minor bugfix (crypto): - - Check the return value of HMAC and assert on failure. - Fixes bug #17658; bugfix on commit in fdbb9cdf746b (11 Oct 2011) - in tor version 0.2.3.5-alpha-dev. - Patch by "teor". diff --git a/changes/cleanup_17587 b/changes/cleanup_17587 deleted file mode 100644 index 05e00fd9e5..0000000000 --- a/changes/cleanup_17587 +++ /dev/null @@ -1,3 +0,0 @@ - o Code simplifications and refactorings: - - Clean up a little duplicated code in crypto_expand_key_material_TAP. - Closes ticket 17587; patch from "pfrankw". diff --git a/changes/decouple_circuit_mark b/changes/decouple_circuit_mark deleted file mode 100644 index 4b7ed778a2..0000000000 --- a/changes/decouple_circuit_mark +++ /dev/null @@ -1,6 +0,0 @@ - o Code simplification and refactoring: - - Extract the more complicated parts of circuit_mark_for_close into - a new function run periodically before connections are freed. - This change removes more than half of the functions currently - in the "blob". - Closes ticket #17218. diff --git a/changes/decouple_conn_attach b/changes/decouple_conn_attach deleted file mode 100644 index 6167b4e932..0000000000 --- a/changes/decouple_conn_attach +++ /dev/null @@ -1,6 +0,0 @@ - o Code simplification and refactorings: - - Decouple the list of streams needing to be attached to circuits - from the overall connection list. This change makes it possible to - attach streams quickly while both simplifying Tor's callgraph and - avoiding O(N) scans of the entire connection list. Closes ticket - 17590. diff --git a/changes/doc17392 b/changes/doc17392 deleted file mode 100644 index 3c93497b00..0000000000 --- a/changes/doc17392 +++ /dev/null @@ -1,4 +0,0 @@ - o Documentation: - - Mention torspec URL in the manpage and point the reader to it - whenever we mention a document that belongs in torspce. - Fixes issue 17392. diff --git a/changes/feature12538 b/changes/feature12538 deleted file mode 100644 index 4e7ea9f41d..0000000000 --- a/changes/feature12538 +++ /dev/null @@ -1,6 +0,0 @@ - o Minor features (directory system): - Previously only relays who explicitly opened a directory port (DirPort) - accepted directory requests from clients. Now all relays, with and without - a DirPort, who do not disable the DirCache option accept and serve - directory requests sent (tunnelled) through their ORPort. - Closes ticket 12538. diff --git a/changes/feature13696 b/changes/feature13696 deleted file mode 100644 index 21c2188d12..0000000000 --- a/changes/feature13696 +++ /dev/null @@ -1,3 +0,0 @@ - o Minor features (security, cryptography): - - Use modern system calls to generate strong entropy on platforms that - provide them. Closes ticket 13696. diff --git a/changes/feature14846 b/changes/feature14846 deleted file mode 100644 index 4668761f22..0000000000 --- a/changes/feature14846 +++ /dev/null @@ -1,4 +0,0 @@ - o Major features (controller): - - New "GETINFO hs/service/desc/id/" command to retrieve a hidden service - descriptor from a service's local hidden service descriptor cache. - Closes ticket 14846. diff --git a/changes/feature15775-fallback b/changes/feature15775-fallback deleted file mode 100644 index 567d01cc72..0000000000 --- a/changes/feature15775-fallback +++ /dev/null @@ -1,19 +0,0 @@ - o Major features (directory mirrors): - - Include an opt-in trial list of Default Fallback Directories in - add_default_fallback_dir_servers(). - "Tor has included a feature to fetch the initial consensus from nodes - other than the authorities for a while now. We just haven't shipped a - list of alternate locations for clients to go to yet. - Reasons why we might want to ship tor with a list of additional places - where clients can find the consensus is that it makes authority - reachability and BW less important. - We want them to have been around and using their current key, address, - and port for a while now (120 days), and have been running, a guard, - and a v2 directory mirror for most of that time." - We exclude BadExits and tor versions that aren't recommended. - We include an IPv6 address for each FallbackDir (#8374). - (Tor might not use IPv6 fallbacks until #6027 is merged.) - The unit test ensures that we successfully load all included - default fallback directories. - Closes ticket #15775. Patch by "teor". - OnionOO script by "weasel", "teor", "gsathya", and "karsten". diff --git a/changes/feature16774 b/changes/feature16774 deleted file mode 100644 index 87ba488cc6..0000000000 --- a/changes/feature16774 +++ /dev/null @@ -1,3 +0,0 @@ - o Minor enhancement: - - Adds FallbackDir entries to 'GETINFO config/defaults'. Closes ticket - #16774 and 17817. Patch by George Tankersley. diff --git a/changes/feature17076 b/changes/feature17076 deleted file mode 100644 index 50ebc96327..0000000000 --- a/changes/feature17076 +++ /dev/null @@ -1,3 +0,0 @@ - o Testing: - - New tests for options_validate. Closes ticket 17076. Patch from - Ola Bini. diff --git a/changes/feature17327 b/changes/feature17327 deleted file mode 100644 index 2fab09990b..0000000000 --- a/changes/feature17327 +++ /dev/null @@ -1,5 +0,0 @@ - o Minor feature (IPv6): - - Add a flag ipv6=address:orport to the DirAuthority and FallbackDir torrc - options. Add hard-coded ipv6 addresses for directory authorities with - ipv6 lines in their descriptors. - Closes ticket 17327; patch from Nick Mathewson / "teor". diff --git a/changes/feature17576-UseDefaultFallbackDirs b/changes/feature17576-UseDefaultFallbackDirs deleted file mode 100644 index 68843c4769..0000000000 --- a/changes/feature17576-UseDefaultFallbackDirs +++ /dev/null @@ -1,4 +0,0 @@ - o Minor feature (fallback directories): - - Add UseDefaultFallbackDirs, which enables any hard-coded fallback - directory mirrors. Default is 1, set it to 0 to disable fallbacks. - Implements ticket 17576. Patch by "teor". diff --git a/changes/feature17608 b/changes/feature17608 deleted file mode 100644 index d56bb7d4a7..0000000000 --- a/changes/feature17608 +++ /dev/null @@ -1,4 +0,0 @@ - o Minor feature (refactoring): - - Move logging of redundant policy entries in - policies_parse_exit_policy_internal into its own function. - Closes ticket 17608; patch from "juce". diff --git a/changes/feature17663 b/changes/feature17663 deleted file mode 100644 index baad9436fc..0000000000 --- a/changes/feature17663 +++ /dev/null @@ -1,3 +0,0 @@ - o Minor feature (crypto): - - Add SHA512 support to crypto.c. Closes ticket 17663; patch from - George Tankersley. diff --git a/changes/feature17796 b/changes/feature17796 deleted file mode 100644 index d96daed262..0000000000 --- a/changes/feature17796 +++ /dev/null @@ -1,6 +0,0 @@ - o Minor features (crypto): - - When allocating a digest state object, allocate no more space than we - actually need. Previously, we were allocating as much space as the - state for the largest algorithm would need. This change saves up to - 672 bytes per circuit. Closes ticket 17796. - diff --git a/changes/feature17840 b/changes/feature17840 new file mode 100644 index 0000000000..b8b3b7f5b5 --- /dev/null +++ b/changes/feature17840 @@ -0,0 +1,9 @@ + o Minor feature (IPv6): + - Add ClientUseIPv4, which is set to 1 by default. If set to 0, tor + avoids using IPv4 for client OR and directory connections. + - Add ClientPreferIPv6DirPort, which is set to 0 by default. If set + to 1, tor prefers IPv6 directory addresses. + - Try harder to fulfil IP version restrictions ClientUseIPv4 0 and + ClientUseIPv6 0; and the preferences ClientPreferIPv6ORPort and + ClientPreferIPv6DirPort. + Closes ticket 17840; patch by "teor". diff --git a/changes/feature17863 b/changes/feature17863 deleted file mode 100644 index 86c4e2ce0c..0000000000 --- a/changes/feature17863 +++ /dev/null @@ -1,6 +0,0 @@ - o Minor feature (IPv6): - - Add address policy assume_action support for IPv6 addresses. - - Limit IPv6 mask bits to 128. - - Warn when comparing against an AF_UNSPEC address in a policy, - it's almost always a bug. - Closes ticket 17863; patch by "teor". diff --git a/changes/feature17864 b/changes/feature17864 deleted file mode 100644 index 1cf156206b..0000000000 --- a/changes/feature17864 +++ /dev/null @@ -1,5 +0,0 @@ - o Minor feature (directory downloads): - - Wait for busy authorities and fallbacks to become non-busy when - bootstrapping. (A similar change was made in 6c443e987d for - directory servers chosen from the consensus.) - Closes ticket 17864; patch by "teor". diff --git a/changes/feature17950 b/changes/feature17950 deleted file mode 100644 index 5ea83ecd8e..0000000000 --- a/changes/feature17950 +++ /dev/null @@ -1,5 +0,0 @@ - o Minor features: - - Add a family argument to get_interface_addresses_raw() and - subfunctions to make network interface address interogation more - efficient. Now Tor can specifically ask for IPv4, IPv6 or both - types of interfaces from the operating system. Resolves ticket 17950. diff --git a/changes/feature17951 b/changes/feature17951 deleted file mode 100644 index 42ec32a0dd..0000000000 --- a/changes/feature17951 +++ /dev/null @@ -1,6 +0,0 @@ - o Minor features: - - When get_interface_address6_list(.,AF_UNSPEC,.) is called and fails - to enumerate interface addresses using the platform-specific API, - have it rely on the UDP socket fallback technique to try and find - out what IP addresses (both IPv4 and IPv6) our machine has. Resolves - ticket 17951. diff --git a/changes/feature17986 b/changes/feature17986 deleted file mode 100644 index ef82bd3503..0000000000 --- a/changes/feature17986 +++ /dev/null @@ -1,3 +0,0 @@ - o Minor features: - - Use SecureMemoryWipe() function to securely clean memory on - Windows. Implements feature 17986. diff --git a/changes/feature8195 b/changes/feature8195 deleted file mode 100644 index cb81f2e1d0..0000000000 --- a/changes/feature8195 +++ /dev/null @@ -1,6 +0,0 @@ - o Major features: - - When Tor is started as root on Linux and told to switch user ID, it - can now retain the capabilitity to bind to low ports. By default, - Tor will do this only when it's switching user ID and some low - ports have been configured. You can change this behavior with - the new option KeepBindCapabilities. Closes ticket 8195. diff --git a/changes/feature8961-replaycache-sha256 b/changes/feature8961-replaycache-sha256 deleted file mode 100644 index c5b5c857db..0000000000 --- a/changes/feature8961-replaycache-sha256 +++ /dev/null @@ -1,4 +0,0 @@ - o Minor enhancement (replaycache): - - The replay cache now uses SHA256 instead of SHA1. - Implements feature #8961. - Patch by "teor", issue reported by "rransom". diff --git a/changes/first-hop-no-private b/changes/first-hop-no-private deleted file mode 100644 index e8d0684061..0000000000 --- a/changes/first-hop-no-private +++ /dev/null @@ -1,8 +0,0 @@ - o Minor bugfix (relays, hidden services): - - Refuse connection requests to private OR addresses unless - ExtendAllowPrivateAddresses is set. Previously, tor would - connect, then refuse to send any cells to a private address. - Fixes bugs 17674 and 8976; bugfix on b7c172c9ec76 (28 Aug 2012) - Original bug 6710, released in 0.2.3.21-rc and an 0.2.2 maint - release. - Patch by "teor". diff --git a/changes/geoip-february2016 b/changes/geoip-february2016 new file mode 100644 index 0000000000..49a8041fad --- /dev/null +++ b/changes/geoip-february2016 @@ -0,0 +1,4 @@ + o Minor features: + - Update geoip and geoip6 to the February 2 2016 Maxmind GeoLite2 + Country database. + diff --git a/changes/geoip-january2016 b/changes/geoip-january2016 deleted file mode 100644 index fe2d5c7dc7..0000000000 --- a/changes/geoip-january2016 +++ /dev/null @@ -1,4 +0,0 @@ - o Minor features: - - Update geoip and geoip6 to the January 5 2016 Maxmind GeoLite2 - Country database. - diff --git a/changes/geoip-march2016 b/changes/geoip-march2016 new file mode 100644 index 0000000000..d7b1bd42f9 --- /dev/null +++ b/changes/geoip-march2016 @@ -0,0 +1,4 @@ + o Minor features: + - Update geoip and geoip6 to the March 3 2016 Maxmind GeoLite2 + Country database. + diff --git a/changes/getinfo-private-exitpolicy b/changes/getinfo-private-exitpolicy deleted file mode 100644 index e8345167e9..0000000000 --- a/changes/getinfo-private-exitpolicy +++ /dev/null @@ -1,6 +0,0 @@ - o Minor features (exit policies, controllers): - - Add controller getinfo exit-policy/reject-private/[default,relay] - for the reject rules added by ExitPolicyRejectPrivate. This makes - it easier for stem to display exit policies. - - Add unit tests for getinfo exit-policy/*. - Completes ticket #17183. Patch by "teor". diff --git a/changes/laplace-edge-cases b/changes/laplace-edge-cases deleted file mode 100644 index 6c8c77b040..0000000000 --- a/changes/laplace-edge-cases +++ /dev/null @@ -1,8 +0,0 @@ - o Code simplifications and unit tests: - - Handle edge cases in the laplace functions: avoid division by zero, - avoid taking the log of zero, and silence clang type conversion - warnings using round and trunc. Add unit tests for edge cases with - maximal values. - - Consistently check for overflow in round_*_to_next_multiple_of - functions, and add unit tests with additional and maximal values. - diff --git a/changes/log_heartbeat_test b/changes/log_heartbeat_test deleted file mode 100644 index 7db97ed03c..0000000000 --- a/changes/log_heartbeat_test +++ /dev/null @@ -1,6 +0,0 @@ - o Minor bugfix (testing): - - The test for log_heartbeat was incorrectly failing in timezones - with non-integer offsets. Instead of comparing the end of the - time string against a constant, compare it to the output of - format_local_iso_time when given the correct input. - Fixes bug 18039. diff --git a/changes/rand-failure-modes b/changes/rand-failure-modes deleted file mode 100644 index cc6ef4744e..0000000000 --- a/changes/rand-failure-modes +++ /dev/null @@ -1,5 +0,0 @@ - o Minor features (unit tests, random number generation): - - Add unit tests that check for common RNG failure modes, such as - returning all zeroes, identical values, or incrementing values - (OpenSSL's rand_predictable feature). - Patch by "teor". diff --git a/changes/remove_memarea_freelist b/changes/remove_memarea_freelist new file mode 100644 index 0000000000..dd9520c11e --- /dev/null +++ b/changes/remove_memarea_freelist @@ -0,0 +1,4 @@ + o Removed code: + - We no longer maintain an internal freelist in memarea.c. Allocators + should be good enough to make this code unnecessary, and it's doubtful + that it ever had any performance benefit. diff --git a/changes/routerset-parse-IPv6-literals b/changes/routerset-parse-IPv6-literals deleted file mode 100644 index c80c82c229..0000000000 --- a/changes/routerset-parse-IPv6-literals +++ /dev/null @@ -1,5 +0,0 @@ - o Minor bug fixes (routersets, IPv6): - - routerset_parse now accepts IPv6 literal addresses. - Fix for ticket 17060. Patch by "teor". - Patch on 3ce6e2fba290 (24 Jul 2008), and related commits, - released in 0.2.1.3-alpha. diff --git a/changes/sha-unit-tests b/changes/sha-unit-tests deleted file mode 100644 index 457578d337..0000000000 --- a/changes/sha-unit-tests +++ /dev/null @@ -1,5 +0,0 @@ - o Minor bugfixes (unit tests): - - Check the full results of SHA256 and SHA512 digests in the - unit tests. - Bugfix on a tor version before the refactoring in git commit - cea12251995d (23 Sep 2009). Patch by "teor". diff --git a/changes/test16831 b/changes/test16831 deleted file mode 100644 index 7db2d14df5..0000000000 --- a/changes/test16831 +++ /dev/null @@ -1,3 +0,0 @@ - o Testing: - - Cover dns_resolve_impl() in dns.c with unit tests. Implements a - portion of ticket 16831. diff --git a/changes/test_asan b/changes/test_asan new file mode 100644 index 0000000000..ce0aa978ff --- /dev/null +++ b/changes/test_asan @@ -0,0 +1,3 @@ + o Testing: + - Fix several warnings from clang's address sanitizer produced in the + unit tests. diff --git a/changes/ticket15989 b/changes/ticket15989 deleted file mode 100644 index e90d0cf8a4..0000000000 --- a/changes/ticket15989 +++ /dev/null @@ -1,9 +0,0 @@ - o Minor enhancement (accounting): - - Added two modes to AccountingRule in torrc for - limiting just input or just output. - Closes ticket 15989; patch from "unixninja92". - - o Minor bugfixe (accounting): - - The max bandwidth when using AccountRule sum - is now correctly logged. Fixes bug 18024; bugfix on 0.2.6.1-alpha. - Patch from "unixninja92". diff --git a/changes/ticket17158 b/changes/ticket17158 deleted file mode 100644 index f65053db99..0000000000 --- a/changes/ticket17158 +++ /dev/null @@ -1,7 +0,0 @@ - o Minor fixes (fallback directories): - - Fix a display issue in updateFallbackDirs.py output. - Patch by "teor". Not in any released version of tor. - - o Minor features (fallback directories): - - Add default fallback directories for the 0.2.8 alpha releases. - Patch by "teor". diff --git a/changes/ticket17744 b/changes/ticket17744 new file mode 100644 index 0000000000..57a4a595c8 --- /dev/null +++ b/changes/ticket17744 @@ -0,0 +1,4 @@ + o Code simplification and refactoring: + - Quote all the string interpolations in configure.ac -- even + those which we are pretty sure can't contain spaces. Closes + ticket 17744. Patch from "zerosion".
\ No newline at end of file diff --git a/changes/trunnel_update b/changes/trunnel_update new file mode 100644 index 0000000000..4f8c1855b6 --- /dev/null +++ b/changes/trunnel_update @@ -0,0 +1,5 @@ + o Minor bugfixes (code correctness): + - Update to the latest version of Trunnel, which tries harder + to avoid generating code that can invoke memcpy(p,NULL,0). + Bug found by clang address sanitizer. Fixes bug 18373. Bugfix + on 0.2.7.2-alpha. diff --git a/changes/warn-when-time-goes-backwards b/changes/warn-when-time-goes-backwards deleted file mode 100644 index d7e584d9ff..0000000000 --- a/changes/warn-when-time-goes-backwards +++ /dev/null @@ -1,5 +0,0 @@ - o Minor features (security, clock): - - Warn when the system clock is set back in time (when the - state file was last written in the future). Tor doesn't know - that consensuses have expired if the clock is in the past. - Patch by "teor". Implements ticket #17188. diff --git a/configure.ac b/configure.ac index 6d2312d159..df4b9cdc08 100644 --- a/configure.ac +++ b/configure.ac @@ -3,10 +3,16 @@ dnl Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson dnl Copyright (c) 2007-2015, The Tor Project, Inc. dnl See LICENSE for licensing information -AC_INIT([tor],[0.2.8.0-alpha-dev]) +AC_PREREQ([2.63]) +AC_INIT([tor],[0.2.8.1-alpha-dev]) AC_CONFIG_SRCDIR([src/or/main.c]) AC_CONFIG_MACRO_DIR([m4]) -AM_INIT_AUTOMAKE + +# "foreign" means we don't follow GNU package layout standards +# "1.11" means we require automake version 1.11 or newer +# "subdir-objects" means put .o files in the same directory as the .c files +AM_INIT_AUTOMAKE([foreign 1.11 subdir-objects]) + m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) AC_CONFIG_HEADERS([orconfig.h]) @@ -14,8 +20,8 @@ AC_CANONICAL_HOST PKG_PROG_PKG_CONFIG -if test -f /etc/redhat-release ; then - if test -f /usr/kerberos/include ; then +if test -f "/etc/redhat-release"; then + if test -f "/usr/kerberos/include"; then CPPFLAGS="$CPPFLAGS -I/usr/kerberos/include" fi fi @@ -41,11 +47,20 @@ AC_ARG_ENABLE(unittests, AS_HELP_STRING(--disable-unittests, [don't build unit tests for Tor. Risky!])) AC_ARG_ENABLE(coverage, AS_HELP_STRING(--enable-coverage, [enable coverage support in the unit-test build])) +AC_ARG_ENABLE(asserts-in-tests, + AS_HELP_STRING(--disable-asserts-in-tests, [disable tor_assert() calls in the unit tests, for branch coverage])) AC_ARG_ENABLE(system-torrc, AS_HELP_STRING(--disable-system-torrc, [don't look for a system-wide torrc file])) +if test "x$enable_coverage" != "xyes" -a "x$enable_asserts_in_tests" = "xno" ; then + AC_MSG_ERROR([Can't disable assertions outside of coverage build]) +fi + +AM_CONDITIONAL(UNITTESTS_ENABLED, test "x$enable_unittests" != "xno") +AM_CONDITIONAL(COVERAGE_ENABLED, test "x$enable_coverage" = "xyes") AM_CONDITIONAL(UNITTESTS_ENABLED, test x$enable_unittests != xno) AM_CONDITIONAL(COVERAGE_ENABLED, test x$enable_coverage = xyes) +AM_CONDITIONAL(DISABLE_ASSERTS_IN_UNIT_TESTS, test "x$enable_asserts_in_tests" = "xno") if test "$enable_static_tor" = "yes"; then enable_static_libevent="yes"; @@ -59,8 +74,8 @@ if test "$enable_system_torrc" = "no"; then [Defined if we're not going to look for a torrc in SYSCONF]) fi -AM_CONDITIONAL(USE_OPENBSD_MALLOC, test x$enable_openbsd_malloc = xyes) -if test x$enable_instrument_downloads = xyes; then +AM_CONDITIONAL(USE_OPENBSD_MALLOC, test "x$enable_openbsd_malloc" = "xyes") +if test "x$enable_instrument_downloads" = "xyes"; then AC_DEFINE(INSTRUMENT_DOWNLOADS, 1, [Defined if we want to keep track of how much of each kind of resource we download.]) fi @@ -68,16 +83,16 @@ fi AC_ARG_ENABLE(transparent, AS_HELP_STRING(--disable-transparent, [disable transparent proxy support]), [case "${enableval}" in - yes) transparent=true ;; - no) transparent=false ;; + "yes") transparent=true ;; + "no") transparent=false ;; *) AC_MSG_ERROR(bad value for --enable-transparent) ;; esac], [transparent=true]) AC_ARG_ENABLE(asciidoc, AS_HELP_STRING(--disable-asciidoc, [don't use asciidoc (disables building of manpages)]), [case "${enableval}" in - yes) asciidoc=true ;; - no) asciidoc=false ;; + "yes") asciidoc=true ;; + "no") asciidoc=false ;; *) AC_MSG_ERROR(bad value for --disable-asciidoc) ;; esac], [asciidoc=true]) @@ -85,22 +100,22 @@ AC_ARG_ENABLE(asciidoc, AC_ARG_ENABLE(systemd, AS_HELP_STRING(--enable-systemd, [enable systemd notification support]), [case "${enableval}" in - yes) systemd=true ;; - no) systemd=false ;; + "yes") systemd=true ;; + "no") systemd=false ;; * ) AC_MSG_ERROR(bad value for --enable-systemd) ;; esac], [systemd=auto]) # systemd support -if test x$enable_systemd = xno ; then +if test "x$enable_systemd" = "xno"; then have_systemd=no; else PKG_CHECK_MODULES(SYSTEMD, [libsystemd-daemon], have_systemd=yes, have_systemd=no) - if test x$have_systemd=xno; then + if test "x$have_systemd" = "xno"; then AC_MSG_NOTICE([Okay, checking for systemd a different way...]) PKG_CHECK_MODULES(SYSTEMD, [libsystemd], @@ -109,7 +124,7 @@ else fi fi -if test x$have_systemd = xyes; then +if test "x$have_systemd" = "xyes"; then AC_DEFINE(HAVE_SYSTEMD,1,[Have systemd]) TOR_SYSTEMD_CFLAGS="${SYSTEMD_CFLAGS}" TOR_SYSTEMD_LIBS="${SYSTEMD_LIBS}" @@ -119,11 +134,11 @@ fi AC_SUBST(TOR_SYSTEMD_CFLAGS) AC_SUBST(TOR_SYSTEMD_LIBS) -if test x$enable_systemd = xyes -a x$have_systemd != xyes ; then +if test "x$enable_systemd" = "xyes" -a "x$have_systemd" != "xyes" ; then AC_MSG_ERROR([Explicitly requested systemd support, but systemd not found]) fi -case $host in +case "$host" in *-*-solaris* ) AC_DEFINE(_REENTRANT, 1, [Define on some platforms to activate x_r() functions in time.h]) ;; @@ -156,7 +171,7 @@ fi # Tor2web mode flag AC_ARG_ENABLE(tor2web-mode, AS_HELP_STRING(--enable-tor2web-mode, [support tor2web non-anonymous mode]), -[if test x$enableval = xyes; then +[if test "x$enableval" = "xyes"; then CFLAGS="$CFLAGS -D ENABLE_TOR2WEB_MODE=1" fi]) @@ -184,10 +199,10 @@ dnl because that will find any cc on the system, not only the cross-compiler, dnl and then verify that a binary built with this compiler runs on the dnl build system. It will then come to the false conclusion that we're not dnl cross-compiling. -if test x$enable_tool_name_check != xno; then - if test x$ac_tool_warned = xyes; then +if test "x$enable_tool_name_check" != "xno"; then + if test "x$ac_tool_warned" = "xyes"; then AC_MSG_ERROR([We are cross compiling but could not find a properly named toolchain. Do you have your cross-compiling toolchain in PATH? (You can --disable-tool-name-check to ignore this.)]) - elif test "x$ac_ct_AR" != x -a x$cross_compiling = xmaybe; then + elif test "x$ac_ct_AR" != "x" -a "x$cross_compiling" = "xmaybe"; then AC_MSG_ERROR([We think we are cross compiling but could not find a properly named toolchain. Do you have your cross-compiling toolchain in PATH? (You can --disable-tool-name-check to ignore this.)]) fi fi @@ -206,11 +221,11 @@ dnl check for asciidoc and a2x AC_PATH_PROG([ASCIIDOC], [asciidoc], none) AC_PATH_PROGS([A2X], [a2x a2x.py], none) -AM_CONDITIONAL(USE_ASCIIDOC, test x$asciidoc = xtrue) +AM_CONDITIONAL(USE_ASCIIDOC, test "x$asciidoc" = "xtrue") -AM_CONDITIONAL(USE_FW_HELPER, test x$natpmp = xtrue || test x$upnp = xtrue) -AM_CONDITIONAL(NAT_PMP, test x$natpmp = xtrue) -AM_CONDITIONAL(MINIUPNPC, test x$upnp = xtrue) +AM_CONDITIONAL(USE_FW_HELPER, test "x$natpmp" = "xtrue" || test "x$upnp" = "xtrue") +AM_CONDITIONAL(NAT_PMP, test "x$natpmp" = "xtrue") +AM_CONDITIONAL(MINIUPNPC, test "x$upnp" = "xtrue") AM_PROG_CC_C_O AC_PROG_CC_C99 @@ -236,7 +251,7 @@ AC_C_FLEXIBLE_ARRAY_MEMBER ]), [tor_cv_c_flexarray=yes], [tor_cv_c_flexarray=no])]) - if test $tor_cv_flexarray = yes ; then + if test "$tor_cv_flexarray" = "yes"; then AC_DEFINE([FLEXIBLE_ARRAY_MEMBER], [], [Define to nothing if C supports flexible array members, and to 1 if it does not.]) else AC_DEFINE([FLEXIBLE_ARRAY_MEMBER], [1], [Define to nothing if C supports flexible array members, and to 1 if it does not.]) @@ -303,7 +318,7 @@ bwin32=false; AC_MSG_RESULT([no]), bwin32=cross; AC_MSG_RESULT([cross]) ) -if test "$bwin32" = cross; then +if test "$bwin32" = "cross"; then AC_MSG_CHECKING([for win32 (cross)]) AC_COMPILE_IFELSE([AC_LANG_SOURCE([ #ifdef _WIN32 @@ -337,7 +352,7 @@ AH_BOTTOM([ ]) -AM_CONDITIONAL(BUILD_NT_SERVICES, test x$bwin32 = xtrue) +AM_CONDITIONAL(BUILD_NT_SERVICES, test "x$bwin32" = "xtrue") dnl Enable C99 when compiling with MIPSpro AC_MSG_CHECKING([for MIPSpro compiler]) @@ -350,7 +365,7 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM(, [ bmipspro=false; AC_MSG_RESULT(no), bmipspro=true; AC_MSG_RESULT(yes)) -if test "$bmipspro" = true; then +if test "$bmipspro" = "true"; then CFLAGS="$CFLAGS -c99" fi @@ -425,13 +440,13 @@ AC_CHECK_FUNCS( _vscprintf ) -if test "$bwin32" != true; then +if test "$bwin32" != "true"; then AC_CHECK_HEADERS(pthread.h) AC_CHECK_FUNCS(pthread_create) AC_CHECK_FUNCS(pthread_condattr_setclock) fi -if test "$bwin32" = true; then +if test "$bwin32" = "true"; then AC_CHECK_DECLS([SecureZeroMemory, _getwch], , , [ #include <windows.h> #include <conio.h> @@ -439,12 +454,13 @@ if test "$bwin32" = true; then ]) fi -AM_CONDITIONAL(BUILD_READPASSPHRASE_C, test x$ac_cv_func_readpassphrase = xno && test $bwin32 = false) +AM_CONDITIONAL(BUILD_READPASSPHRASE_C, + test "x$ac_cv_func_readpassphrase" = "xno" && test "$bwin32" = "false") dnl ------------------------------------------------------ dnl Where do you live, libevent? And how do we call you? -if test "$bwin32" = true; then +if test "$bwin32" = "true"; then TOR_LIB_WS32=-lws2_32 TOR_LIB_IPHLPAPI=-liphlpapi # Some of the cargo-cults recommend -lwsock32 as well, but I don't @@ -467,7 +483,7 @@ dnl On Gnu/Linux or any place we require it, we'll add librt to the Libevent dnl linking for static builds. STATIC_LIBEVENT_FLAGS="" if test "$enable_static_libevent" = "yes"; then - if test "$have_rt" = yes; then + if test "$have_rt" = "yes"; then STATIC_LIBEVENT_FLAGS=" -lrt " fi fi @@ -510,7 +526,8 @@ AC_CHECK_HEADERS(event2/event.h event2/dns.h event2/bufferevent_ssl.h) LIBS="$STATIC_LIBEVENT_FLAGS $TOR_LIB_WS32 $save_LIBS" -AM_CONDITIONAL(USE_EXTERNAL_EVDNS, test x$ac_cv_header_event2_dns_h = xyes) +AM_CONDITIONAL(USE_EXTERNAL_EVDNS, + test "x$ac_cv_header_event2_dns_h" = "xyes") if test "$enable_static_libevent" = "yes"; then if test "$tor_cv_library_libevent_dir" = "(system)"; then @@ -540,8 +557,8 @@ CPPFLAGS="$save_CPPFLAGS" dnl This isn't the best test for Libevent 2.0.3-alpha. Once it's released, dnl we can do much better. -if test "$enable_bufferevents" = "yes" ; then - if test "$ac_cv_header_event2_bufferevent_ssl_h" != "yes" ; then +if test "$enable_bufferevents" = "yes"; then + if test "$ac_cv_header_event2_bufferevent_ssl_h" != "yes"; then AC_MSG_ERROR([You've asked for bufferevent support, but you're using a version of Libevent without SSL support. This won't work. We need Libevent 2.0.8-rc or later, and you don't seem to even have Libevent 2.0.3-alpha.]) else @@ -559,7 +576,7 @@ int x = 1; #endif ])], [event_version_number_works=yes; AC_MSG_RESULT([yes]) ], [event_version_number_works=no; AC_MSG_RESULT([no])]) - if test "$event_version_number_works" != 'yes'; then + if test "$event_version_number_works" != "yes"; then AC_MSG_WARN([Version detection on Libevent seems broken. Your Libevent installation is probably screwed up or very old.]) else AC_MSG_CHECKING([whether Libevent is new enough for bufferevents]) @@ -619,7 +636,7 @@ ALT_openssl_WITHVAL="" AC_ARG_WITH(ssl-dir, AS_HELP_STRING(--with-ssl-dir=PATH, [obsolete alias for --with-openssl-dir]), [ - if test "x$withval" != xno && test "x$withval" != "x" ; then + if test "x$withval" != "xno" && test "x$withval" != "x"; then ALT_openssl_WITHVAL="$withval" fi ]) @@ -746,9 +763,9 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [ #error #endif])], have_clang=yes, have_clang=no) -if test x$enable_gcc_hardening != xno; then +if test "x$enable_gcc_hardening" != "xno"; then CFLAGS="$CFLAGS -D_FORTIFY_SOURCE=2" - if test x$have_clang = xyes; then + if test "x$have_clang" = "xyes"; then TOR_CHECK_CFLAGS(-Qunused-arguments) fi TOR_CHECK_CFLAGS(-fstack-protector-all, also_link) @@ -771,13 +788,13 @@ m4_ifdef([AS_VAR_IF],[ fi fi -if test x$enable_expensive_hardening = xyes ; then +if test "x$enable_expensive_hardening" = "xyes"; then TOR_CHECK_CFLAGS([-fsanitize=address]) TOR_CHECK_CFLAGS([-fsanitize=undefined]) TOR_CHECK_CFLAGS([-fno-omit-frame-pointer]) fi -if test x$enable_linker_hardening != xno; then +if test "x$enable_linker_hardening" != "xno"; then TOR_CHECK_LDFLAGS(-z relro -z now, "$all_ldflags_for_check", "$all_libs_for_check") fi @@ -791,7 +808,7 @@ saved_CFLAGS="$CFLAGS" TOR_CHECK_CFLAGS(-fomit-frame-pointer) F_OMIT_FRAME_POINTER='' if test "$saved_CFLAGS" != "$CFLAGS"; then - if test x$enable_expensive_hardening != xyes ; then + if test "x$enable_expensive_hardening" != "xyes"; then F_OMIT_FRAME_POINTER='-fomit-frame-pointer' fi fi @@ -900,10 +917,10 @@ AC_CACHE_CHECK([for nacl compiled with a fast curve25519 implementation], dnl Okay, now we need to figure out which one to actually use. Fall back dnl to curve25519-donna.c - if test x$tor_cv_can_use_curve25519_donna_c64 != xno; then + if test "x$tor_cv_can_use_curve25519_donna_c64" != "xno"; then build_curve25519_donna_c64=yes use_curve25519_donna=yes - elif test x$tor_cv_can_use_curve25519_nacl = xyes; then + elif test "x$tor_cv_can_use_curve25519_nacl" = "xyes"; then use_curve25519_nacl=yes CURVE25519_LIBS=-lnacl else @@ -911,16 +928,18 @@ AC_CACHE_CHECK([for nacl compiled with a fast curve25519 implementation], use_curve25519_donna=yes fi -if test x$use_curve25519_donna = xyes; then +if test "x$use_curve25519_donna" = "xyes"; then AC_DEFINE(USE_CURVE25519_DONNA, 1, [Defined if we should use an internal curve25519_donna{,_c64} implementation]) fi -if test x$use_curve25519_nacl = xyes; then +if test "x$use_curve25519_nacl" = "xyes"; then AC_DEFINE(USE_CURVE25519_NACL, 1, [Defined if we should use a curve25519 from nacl]) fi -AM_CONDITIONAL(BUILD_CURVE25519_DONNA, test x$build_curve25519_donna = xyes) -AM_CONDITIONAL(BUILD_CURVE25519_DONNA_C64, test x$build_curve25519_donna_c64 = xyes) +AM_CONDITIONAL(BUILD_CURVE25519_DONNA, + test "x$build_curve25519_donna" = "xyes") +AM_CONDITIONAL(BUILD_CURVE25519_DONNA_C64, + test "x$build_curve25519_donna_c64" = "xyes") AC_SUBST(CURVE25519_LIBS) dnl Make sure to enable support for large off_t if available. @@ -1060,20 +1079,20 @@ AC_CHECK_HEADERS(linux/netfilter_ipv6/ip6_tables.h, #include <linux/if.h> #endif]) -if test x$transparent = xtrue ; then +if test "x$transparent" = "xtrue"; then transparent_ok=0 - if test x$net_if_found = x1 && test x$net_pfvar_found = x1 ; then + if test "x$net_if_found" = "x1" && test "x$net_pfvar_found" = "x1"; then transparent_ok=1 fi - if test x$linux_netfilter_ipv4 = x1 ; then + if test "x$linux_netfilter_ipv4" = "x1"; then transparent_ok=1 fi - if test x$linux_netfilter_ipv6_ip6_tables = x1 ; then + if test "x$linux_netfilter_ipv6_ip6_tables" = "x1"; then transparent_ok=1 fi - if test x$transparent_ok = x1 ; then + if test "x$transparent_ok" = "x1"; then AC_DEFINE(USE_TRANSPARENT, 1, "Define to enable transparent proxy support") - case $host in + case "$host" in *-*-openbsd* | *-*-bitrig*) AC_DEFINE(OPENBSD, 1, "Define to handle pf on OpenBSD properly") ;; esac @@ -1176,7 +1195,7 @@ AC_CHECK_TYPES([rlim_t], , , ]) AX_CHECK_SIGN([time_t], - [ AC_DEFINE(TIME_T_IS_SIGNED, 1, [Define if time_t is signed]) ], + [ : ], [ : ], [ #ifdef HAVE_SYS_TYPES_H #include <sys/types.h> @@ -1189,8 +1208,8 @@ AX_CHECK_SIGN([time_t], #endif ]) -if test "$ax_cv_decl_time_t_signed" = no; then - AC_MSG_WARN([You have an unsigned time_t; some things will probably break. Please tell the Tor developers about your interesting platform.]) +if test "$ax_cv_decl_time_t_signed" = "no"; then + AC_MSG_ERROR([You have an unsigned time_t; Tor does not support that. Please tell the Tor developers about your interesting platform.]) fi AX_CHECK_SIGN([size_t], @@ -1201,7 +1220,7 @@ AX_CHECK_SIGN([size_t], #endif ]) -if test "$ax_cv_decl_size_t_signed" = yes; then +if test "$ax_cv_decl_size_t_signed" = "yes"; then AC_MSG_ERROR([You have a signed size_t; that's grossly nonconformant.]) fi @@ -1236,12 +1255,12 @@ return memcmp(&p1,&p2,sizeof(char*))?1:0; }]])], [tor_cv_null_is_zero=no], [tor_cv_null_is_zero=cross])]) -if test "$tor_cv_null_is_zero" = cross ; then +if test "$tor_cv_null_is_zero" = "cross"; then # Cross-compiling; let's hope that the target isn't raving mad. AC_MSG_NOTICE([Cross-compiling: we'll assume that NULL is represented as a sequence of 0-valued bytes.]) fi -if test "$tor_cv_null_is_zero" != no; then +if test "$tor_cv_null_is_zero" != "no"; then AC_DEFINE([NULL_REP_IS_ZERO_BYTES], 1, [Define to 1 iff memset(0) sets pointers to NULL]) fi @@ -1260,12 +1279,12 @@ return memcmp(&d1,&d2,sizeof(d1))?1:0; }]])], [tor_cv_dbl0_is_zero=no], [tor_cv_dbl0_is_zero=cross])]) -if test "$tor_cv_dbl0_is_zero" = cross ; then +if test "$tor_cv_dbl0_is_zero" = "cross"; then # Cross-compiling; let's hope that the target isn't raving mad. AC_MSG_NOTICE([Cross-compiling: we'll assume that 0.0 can be represented as a sequence of 0-valued bytes.]) fi -if test "$tor_cv_dbl0_is_zero" != no; then +if test "$tor_cv_dbl0_is_zero" != "no"; then AC_DEFINE([DOUBLE_0_REP_IS_ZERO_BYTES], 1, [Define to 1 iff memset(0) sets doubles to 0.0]) fi @@ -1284,12 +1303,12 @@ int main () { return malloc(0)?0:1; }]])], [tor_cv_malloc_zero_works=no], [tor_cv_malloc_zero_works=cross])]) -if test "$tor_cv_malloc_zero_works" = cross; then +if test "$tor_cv_malloc_zero_works" = "cross"; then # Cross-compiling; let's hope that the target isn't raving mad. AC_MSG_NOTICE([Cross-compiling: we'll assume that we need to check malloc() arguments for 0.]) fi -if test "$tor_cv_malloc_zero_works" = yes; then +if test "$tor_cv_malloc_zero_works" = "yes"; then AC_DEFINE([MALLOC_ZERO_WORKS], 1, [Define to 1 iff malloc(0) returns a pointer]) fi @@ -1303,14 +1322,15 @@ return problem ? 1 : 0; }]])], [tor_cv_twos_complement=no], [tor_cv_twos_complement=cross])]) -if test "$tor_cv_twos_complement" = cross ; then +if test "$tor_cv_twos_complement" = "cross"; then # Cross-compiling; let's hope that the target isn't raving mad. AC_MSG_NOTICE([Cross-compiling: we'll assume that negative integers are represented with two's complement.]) fi -if test "$tor_cv_twos_complement" != no ; then +if test "$tor_cv_twos_complement" != "no"; then AC_DEFINE([USING_TWOS_COMPLEMENT], 1, - [Define to 1 iff we represent negative integers with two's complement]) + [Define to 1 iff we represent negative integers with + two's complement]) fi # What does shifting a negative value do? @@ -1321,12 +1341,12 @@ AC_CACHE_CHECK([whether right-shift on negative values does sign-extension], tor [tor_cv_sign_extend=no], [tor_cv_sign_extend=cross])]) -if test "$tor_cv_sign_extend" = cross ; then +if test "$tor_cv_sign_extend" = "cross"; then # Cross-compiling; let's hope that the target isn't raving mad. AC_MSG_NOTICE([Cross-compiling: we'll assume that right-shifting negative integers causes sign-extension]) fi -if test "$tor_cv_sign_extend" != no ; then +if test "$tor_cv_sign_extend" != "no"; then AC_DEFINE([RSHIFT_DOES_SIGN_EXTEND], 1, [Define to 1 iff right-shifting a negative value performs sign-extension]) fi @@ -1355,18 +1375,18 @@ AC_ARG_WITH(tcmalloc, AS_HELP_STRING(--with-tcmalloc, [use tcmalloc memory allocation library]), [ tcmalloc=yes ], [ tcmalloc=no ]) -if test x$tcmalloc = xyes ; then +if test "x$tcmalloc" = "xyes"; then LDFLAGS="-ltcmalloc $LDFLAGS" fi using_custom_malloc=no -if test x$enable_openbsd_malloc = xyes ; then +if test "x$enable_openbsd_malloc" = "xyes"; then using_custom_malloc=yes fi -if test x$tcmalloc = xyes ; then +if test "x$tcmalloc" = "xyes"; then using_custom_malloc=yes fi -if test $using_custom_malloc = no ; then +if test "$using_custom_malloc" = "no"; then AC_CHECK_FUNCS(mallinfo) fi @@ -1483,20 +1503,20 @@ int main(int c, char **v) { char **t = environ; }])], tor_cv_have_environ_declared=yes, tor_cv_have_environ_declared=no)) -if test "$tor_cv_have_func_macro" = 'yes'; then +if test "$tor_cv_have_func_macro" = "yes"; then AC_DEFINE(HAVE_MACRO__func__, 1, [Defined if the compiler supports __func__]) fi -if test "$tor_cv_have_FUNC_macro" = 'yes'; then +if test "$tor_cv_have_FUNC_macro" = "yes"; then AC_DEFINE(HAVE_MACRO__FUNC__, 1, [Defined if the compiler supports __FUNC__]) fi -if test "$tor_cv_have_FUNCTION_macro" = 'yes'; then +if test "$tor_cv_have_FUNCTION_macro" = "yes"; then AC_DEFINE(HAVE_MACRO__FUNCTION__, 1, [Defined if the compiler supports __FUNCTION__]) fi -if test "$tor_cv_have_environ_declared" = 'yes'; then +if test "$tor_cv_have_environ_declared" = "yes"; then AC_DEFINE(HAVE_EXTERN_ENVIRON_DECLARED, 1, [Defined if we have extern char **environ already declared]) fi @@ -1532,7 +1552,7 @@ AC_SUBST(BINDIR) LOCALSTATEDIR=`eval echo $localstatedir` AC_SUBST(LOCALSTATEDIR) -if test "$bwin32" = true; then +if test "$bwin32" = "true"; then # Test if the linker supports the --nxcompat and --dynamicbase options # for Windows save_LDFLAGS="$LDFLAGS" @@ -1548,7 +1568,7 @@ fi # Set CFLAGS _after_ all the above checks, since our warnings are stricter # than autoconf's macros like. -if test "$GCC" = yes; then +if test "$GCC" = "yes"; then # Disable GCC's strict aliasing checks. They are an hours-to-debug # accident waiting to happen. CFLAGS="$CFLAGS -Wall -fno-strict-aliasing" @@ -1571,7 +1591,8 @@ esac # Add some more warnings which we use in development but not in the # released versions. (Some relevant gcc versions can't handle these.) -if test x$enable_gcc_warnings = xyes || test x$enable_gcc_warnings_advisory = xyes; then +if test "x$enable_gcc_warnings" = "xyes" || + test "x$enable_gcc_warnings_advisory" = "xyes"; then AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [ #if !defined(__GNUC__) || (__GNUC__ < 4) @@ -1600,7 +1621,7 @@ if test x$enable_gcc_warnings = xyes || test x$enable_gcc_warnings_advisory = xy have_shorten64_flag=no) CFLAGS="$save_CFLAGS" - case $host in + case "$host" in *-*-openbsd* | *-*-bitrig*) # Some OpenBSD versions (like 4.8) have -Wsystem-headers by default. # That's fine, except that the headers don't pass -Wredundant-decls. @@ -1615,18 +1636,18 @@ if test x$enable_gcc_warnings = xyes || test x$enable_gcc_warnings_advisory = xy CFLAGS="$CFLAGS -Wwrite-strings -Wmissing-declarations -Wredundant-decls" CFLAGS="$CFLAGS -Wnested-externs -Wbad-function-cast -Wswitch-enum" - if test x$enable_gcc_warnings = xyes; then + if test "x$enable_gcc_warnings" = "xyes"; then CFLAGS="$CFLAGS -Werror" fi # Disabled, so we can use mallinfo(): -Waggregate-return - if test x$have_gcc4 = xyes ; then + if test "x$have_gcc4" = "xyes"; then # These warnings break gcc 3.3.5 and work on gcc 4.0.2 CFLAGS="$CFLAGS -Winit-self -Wmissing-field-initializers -Wold-style-definition" fi - if test x$have_gcc42 = xyes ; then + if test "x$have_gcc42" = "xyes"; then # These warnings break gcc 4.0.2 and work on gcc 4.2 # XXXX020 See if any of these work with earlier versions. CFLAGS="$CFLAGS -Waddress -Wmissing-noreturn -Wstrict-overflow=1" @@ -1634,24 +1655,24 @@ if test x$enable_gcc_warnings = xyes || test x$enable_gcc_warnings_advisory = xy # We used to use -Wstrict-overflow=5, but that breaks us heavily under 4.3. fi - if test x$have_gcc42 = xyes && test x$have_clang = xno; then + if test "x$have_gcc42" = "xyes" && test "x$have_clang" = "xno"; then # These warnings break gcc 4.0.2 and clang, but work on gcc 4.2 CFLAGS="$CFLAGS -Wnormalized=id -Woverride-init" fi - if test x$have_gcc43 = xyes ; then + if test "x$have_gcc43" = "xyes"; then # These warnings break gcc 4.2 and work on gcc 4.3 # XXXX020 See if any of these work with earlier versions. CFLAGS="$CFLAGS -Wextra -Warray-bounds" fi - if test x$have_gcc46 = xyes ; then + if test "x$have_gcc46" = "xyes"; then # This warning was added in gcc 4.3, but it appears to generate # spurious warnings in gcc 4.4. I don't know if it works in 4.5. CFLAGS="$CFLAGS -Wlogical-op" fi - if test x$have_shorten64_flag = xyes ; then + if test "x$have_shorten64_flag" = "xyes"; then CFLAGS="$CFLAGS -Wshorten-64-to-32" fi @@ -1661,7 +1682,7 @@ if test x$enable_gcc_warnings = xyes || test x$enable_gcc_warnings_advisory = xy # CFLAGS="$CFLAGS -Winline" fi -if test "$enable_coverage" = yes && test "$have_clang" = "no"; then +if test "$enable_coverage" = "yes" && test "$have_clang" = "no"; then case "$host_os" in darwin*) AC_MSG_WARN([Tried to enable coverage on OSX without using the clang compiler. This might not work! If coverage fails, use CC=clang when configuring with --enable-profiling.]) @@ -1684,7 +1705,7 @@ AC_CONFIG_FILES([ scripts/maint/updateVersions.pl ]) -if test x$asciidoc = xtrue && test "$ASCIIDOC" = "none" ; then +if test "x$asciidoc" = "xtrue" && test "$ASCIIDOC" = "none"; then regular_mans="doc/tor doc/tor-gencert doc/tor-resolve doc/torify" for file in $regular_mans ; do if ! [[ -f "$srcdir/$file.1.in" ]] || ! [[ -f "$srcdir/$file.html.in" ]] ; then diff --git a/contrib/win32build/tor-mingw.nsi.in b/contrib/win32build/tor-mingw.nsi.in index 2da4210499..9a4de0ab08 100644 --- a/contrib/win32build/tor-mingw.nsi.in +++ b/contrib/win32build/tor-mingw.nsi.in @@ -8,7 +8,7 @@ !include "LogicLib.nsh" !include "FileFunc.nsh" !insertmacro GetParameters -!define VERSION "0.2.8.0-alpha-dev" +!define VERSION "0.2.8.1-alpha-dev" !define INSTALLER "tor-${VERSION}-win32.exe" !define WEBSITE "https://www.torproject.org/" !define LICENSE "LICENSE" diff --git a/doc/HACKING/CodingStandards.md b/doc/HACKING/CodingStandards.md index bec076527f..4aafa5ddd4 100644 --- a/doc/HACKING/CodingStandards.md +++ b/doc/HACKING/CodingStandards.md @@ -80,6 +80,11 @@ When we go to make a release, we will concatenate all the entries in changes to make a draft changelog, and clear the directory. We'll then edit the draft changelog into a nice readable format. +To make sure that stuff is in the right format, we use +scripts/maint/lintChanges.py to check the changes files for +(superficial) validity. You can run this script on your own changes +files! + What needs a changes file? * A not-exhaustive list: Anything that might change user-visible diff --git a/doc/HACKING/WritingTests.md b/doc/HACKING/WritingTests.md index 42fba2d71a..4e98d3d645 100644 --- a/doc/HACKING/WritingTests.md +++ b/doc/HACKING/WritingTests.md @@ -206,6 +206,48 @@ For example, `crypto_curve25519.h` contains: The `crypto_curve25519.c` file and the `test_crypto.c` file both define `CRYPTO_CURVE25519_PRIVATE`, so they can see this declaration. +### STOP! Does this test really test? + +When writing tests, it's not enough to just generate coverage on all the +lines of the code that you're testing: It's important to make sure that +the test _really tests_ the code. + +For example, here is a _bad_ test for the unlink() function (which is +supposed to remove a file). + + static void + test_unlink_badly(void *arg) + { + (void) arg; + int r; + + const char *fname = get_fname("tmpfile"); + + /* If the file isn't there, unlink returns -1 and sets ENOENT */ + r = unlink(fname); + tt_int_op(n, OP_EQ, -1); + tt_int_op(errno, OP_EQ, ENOENT); + + /* If the file DOES exist, unlink returns 0. */ + write_str_to_file(fname, "hello world", 0); + r = unlink(fnme); + tt_int_op(r, OP_EQ, 0); + + done: + tor_free(contents); + } + + +This test might get very high coverage on unlink(). So why is it a +bad test? Because it doesn't check that unlink() *actually removes the +named file*! + +Remember, the purpose of a test is to succeed if the code does what +it's supposed to do, and fail otherwise. Try to design your tests so +that they check for the code's intended and documented functionality +as much as possible. + + ### Mock functions for testing in isolation Often we want to test that a function works right, but the function to diff --git a/doc/contrib/tor-rpm-creation.txt b/doc/contrib/tor-rpm-creation.txt index a03891e2b9..9c4e05764e 100644 --- a/doc/contrib/tor-rpm-creation.txt +++ b/doc/contrib/tor-rpm-creation.txt @@ -42,7 +42,7 @@ Here's a workaround: Before even building the source RPM, install fedora-packager and instruct the build system to use rpmbuild-md5 like this: -yum install fedora-packager +dnf install fedora-packager export RPMBUILD=rpmbuild-md5 Then proceed as usual to create the source RPM and binary RPMs: diff --git a/doc/tor.1.txt b/doc/tor.1.txt index d08366aa55..d6a68523df 100644 --- a/doc/tor.1.txt +++ b/doc/tor.1.txt @@ -390,6 +390,7 @@ GENERAL OPTIONS authorities. By default, the directory authorities are also FallbackDirs. Specifying a FallbackDir replaces Tor's default hard-coded FallbackDirs (if any). + (See the **DirAuthority** entry for an explanation of each flag.) [[UseDefaultFallbackDirs]] **UseDefaultFallbackDirs** **0**|**1**:: Use Tor's default hard-coded FallbackDirs (if any). (When a @@ -414,6 +415,10 @@ GENERAL OPTIONS authority is listening for IPv6 connections on the indicated IPv6 address and OR Port. + + + Tor will contact the authority at __address__:__port__ (the DirPort) to + download directory documents. If an IPv6 address is supplied, Tor will + also download directory documents at the IPv6 address on the DirPort. + + + If no **DirAuthority** line is given, Tor will use the default directory authorities. NOTE: this option is intended for setting up a private Tor network with its own directory authorities. If you use it, you will be @@ -1506,17 +1511,33 @@ The following options are useful only for clients (that is, if If no defaults are available there, these options default to 20, .80, .60, and 100, respectively. +[[ClientUseIPv4]] **ClientUseIPv4** **0**|**1**:: + If this option is set to 0, Tor will avoid connecting to directory servers + and entry nodes over IPv4. Note that clients with an IPv4 + address in a **Bridge**, proxy, or pluggable transport line will try + connecting over IPv4 even if **ClientUseIPv4** is set to 0. (Default: 1) + [[ClientUseIPv6]] **ClientUseIPv6** **0**|**1**:: - If this option is set to 1, Tor might connect to entry nodes over - IPv6. Note that clients configured with an IPv6 address in a - **Bridge** line will try connecting over IPv6 even if - **ClientUseIPv6** is set to 0. (Default: 0) + If this option is set to 1, Tor might connect to directory servers or + entry nodes over IPv6. Note that clients configured with an IPv6 address + in a **Bridge**, proxy, or pluggable transport line will try connecting + over IPv6 even if **ClientUseIPv6** is set to 0. (Default: 0) + +[[ClientPreferIPv6DirPort]] **ClientPreferIPv6DirPort** **0**|**1**|**auto**:: + If this option is set to 1, Tor prefers a directory port with an IPv6 + address over one with IPv4, for direct connections, if a given directory + server has both. (Tor also prefers an IPv6 DirPort if IPv4Client is set to + 0.) If this option is set to auto, clients prefer IPv4. Other things may + influence the choice. This option breaks a tie to the favor of IPv6. + (Default: auto) -[[ClientPreferIPv6ORPort]] **ClientPreferIPv6ORPort** **0**|**1**:: +[[ClientPreferIPv6ORPort]] **ClientPreferIPv6ORPort** **0**|**1**|**auto**:: If this option is set to 1, Tor prefers an OR port with an IPv6 - address over one with IPv4 if a given entry node has both. Other - things may influence the choice. This option breaks a tie to the - favor of IPv6. (Default: 0) + address over one with IPv4 if a given entry node has both. (Tor also + prefers an IPv6 ORPort if IPv4Client is set to 0.) If this option is set + to auto, Tor bridge clients prefer the configured bridge address, and + other clients prefer IPv4. Other things may influence the choice. This + option breaks a tie to the favor of IPv6. (Default: auto) [[PathsNeededToBuildCircuits]] **PathsNeededToBuildCircuits** __NUM__:: Tor clients don't build circuits for user traffic until they know @@ -2461,6 +2482,11 @@ The following options are used for running a testing Tor network. fallback directory mirrors before giving up. Changing this requires that **TestingTorNetwork** is set. (Default: 7) +[[TestingClientBootstrapConsensusAuthorityOnlyMaxDownloadTries]] **TestingClientBootstrapConsensusAuthorityOnlyMaxDownloadTries** __NUM__:: + Try this many times to download a consensus while bootstrapping using + authorities before giving up. Changing this requires that + **TestingTorNetwork** is set. (Default: 4) + [[TestingClientBootstrapConsensusMaxInProgressTries]] **TestingClientBootstrapConsensusMaxInProgressTries** __NUM__:: Try this many simultaneous connections to download a consensus before waiting for one to complete, timeout, or error out. Changing this diff --git a/scripts/maint/analyze_callgraph.py b/scripts/maint/analyze_callgraph.py index b28460489a..8ce5827f07 100755 --- a/scripts/maint/analyze_callgraph.py +++ b/scripts/maint/analyze_callgraph.py @@ -9,19 +9,28 @@ import os class Parser: def __init__(self): self.calls = {} + self.definedIn = {} def enter_func(self, name): - if self.infunc and not self.extern: + if self.infunc and not self.extern and self.calledfns: + if self.infunc in self.definedIn: + #print "{}: {} or {}?".format( + # self.infunc, self.definedIn[self.infunc], self.module) + self.definedIn[self.infunc] = 'nil' + else: + self.definedIn[self.infunc] = self.module self.calls.setdefault(self.infunc, set()).update( self.calledfns ) self.calledfns = set() self.infunc = name self.extern = False - def parse_callgraph_file(self, inp): + def parse_callgraph_file(self, inp, module): self.infunc = None self.extern = False self.calledfns = set() + self.module = module + for line in inp: m = re.match(r"Call graph node for function: '([^']+)'", line) if m: @@ -189,13 +198,27 @@ def connection_bottlenecks(callgraph): if __name__ == '__main__': p = Parser() for fname in sys.argv[1:]: + modname = re.sub(r'.*/', '', fname).replace('.callgraph', '.c') with open(fname, 'r') as f: - p.parse_callgraph_file(f) + p.parse_callgraph_file(f, modname) - sys.stdout.flush + sys.stdout.flush() print "Building callgraph" callgraph = p.extract_callgraph() + inModule = p.definedIn + + print "Deriving module callgraph" + modCallgraph = {} + for fn in callgraph: + fnMod = inModule[fn] + for called in callgraph[fn]: + try: + calledMod = inModule[called] + except KeyError: + continue + modCallgraph.setdefault(fnMod, set()).add(calledMod) + del modCallgraph['nil'] print "Finding strongly connected components" sccs = strongly_connected_components(callgraph) @@ -206,11 +229,28 @@ if __name__ == '__main__': print "Finding bottlenecks..." bottlenecks = connection_bottlenecks(callgraph) + print "Finding module SCCs" + modSCCS = strongly_connected_components(modCallgraph) + + print "Finding module TC" + modTC = transitive_closure(modCallgraph) + + print "Finding module bottlenecks" + modB = connection_bottlenecks(modCallgraph) + data = { 'callgraph' : callgraph, 'sccs' : sccs, 'closure' : closure, - 'bottlenecks' : bottlenecks } + 'bottlenecks' : bottlenecks, + 'modules' : p.definedIn, + 'modItems' : { + 'callgraph' : modCallgraph, + 'sccs' : modSCCS, + 'closure' : modTC, + 'bottlenecks' : modB, + } + } with open('callgraph.pkl', 'w') as f: cPickle.dump(data, f) diff --git a/scripts/maint/display_callgraph.py b/scripts/maint/display_callgraph.py index 211bfda28d..c9001c6d96 100755 --- a/scripts/maint/display_callgraph.py +++ b/scripts/maint/display_callgraph.py @@ -4,6 +4,8 @@ import cPickle data = cPickle.load(open("callgraph.pkl")) +# data = data['modItems'] + callgraph = data['callgraph'] closure = data['closure'] sccs = data['sccs'] diff --git a/scripts/maint/fallback.whitelist b/scripts/maint/fallback.whitelist index d5ddcd2e82..6edb368345 100644 --- a/scripts/maint/fallback.whitelist +++ b/scripts/maint/fallback.whitelist @@ -37,7 +37,6 @@ # https://lists.torproject.org/pipermail/tor-relays/2016-January/008555.html 62.210.124.124:9030 orport=9001 id=86E78DD3720C78DA8673182EF96C54B162CD660C ipv6=[2001:bc8:3f23:100::1]:9001 62.210.124.124:9130 orport=9101 id=2EBD117806EE43C3CC885A8F1E4DC60F207E7D3E ipv6=[2001:bc8:3f23:100::1]:9101 -# DirPort TBC in next consensus 212.47.237.95:9030 orport=9001 id=3F5D8A879C58961BB45A3D26AC41B543B40236D6 212.47.237.95:9130 orport=9101 id=6FB38EB22E57EF7ED5EF00238F6A48E553735D88 @@ -76,7 +75,8 @@ 81.7.14.246:80 orport=443 id=CE75BF0972ADD52AF8807602374E495C815DB304 ipv6=[2a02:180:a:51::dead]:443 # https://lists.torproject.org/pipermail/tor-relays/2015-December/008384.html -149.202.98.161:80 orport=443 id=54660C671B47E6986B465B80444414BD19E5A34B ipv6=[2001:41d0:8:4528::161]:443 +# Sent additional email to teor with fingerprint change +149.202.98.161:80 orport=443 id=FC64CD763F8C1A319BFBBF62551684F4E1E42332 ipv6=[2001:41d0:8:4528::161]:443 193.111.136.162:80 orport=443 id=C79552275DFCD486B942510EF663ED36ACA1A84B ipv6=[2001:4ba0:cafe:10d0::1]:443 # https://lists.torproject.org/pipermail/tor-relays/2015-December/008416.html diff --git a/scripts/maint/lintChanges.py b/scripts/maint/lintChanges.py index c2fc01d2bf..a73110dab1 100755 --- a/scripts/maint/lintChanges.py +++ b/scripts/maint/lintChanges.py @@ -7,6 +7,20 @@ import re import os +KNOWN_GROUPS=set([ + "Minor bugfix", + "Minor bugfixes", + "Major bugfix", + "Major bugfixes", + "Minor feature", + "Minor features", + "Major feature", + "Major features", + "Testing", + "Documentation", + "Code simplification and refactoring", + "Removed features"]) + def lintfile(fname): have_warned = [] @@ -31,8 +45,16 @@ def lintfile(fname): lines = contents.split("\n") isBug = ("bug" in lines[0] or "fix" in lines[0]) - if not re.match(r'^[ ]{2}o (.*)', contents): + m = re.match(r'^[ ]{2}o ([^\(:]*)([^:]*):', contents) + if not m: warn("header not in format expected") + elif m.group(1).strip() not in KNOWN_GROUPS: + warn("Weird header: %r"%m.group(1)) + elif ( ("bugfix" in m.group(1) or "feature" in m.group(1)) and + ("Removed" not in m.group(1)) and + '(' not in m.group(2)): + warn("Missing subcategory on %s"%m.group(1)) + contents = " ".join(contents.split()) diff --git a/scripts/maint/sortChanges.py b/scripts/maint/sortChanges.py index 7e25cefd53..d6ec0e269d 100755 --- a/scripts/maint/sortChanges.py +++ b/scripts/maint/sortChanges.py @@ -16,10 +16,36 @@ def fetch(fn): s = "%s\n" % s.rstrip() return s +CSR='Code simplification and refactoring' + +REPLACEMENTS = { + # plurals + 'Minor bugfix' : 'Minor bugfixes', + 'Major bugfix' : 'Major bugfixes', + 'Minor feature' : 'Minor features', + 'Major feature' : 'Major features', + 'Removed feature' : 'Removed features', + 'Code simplification and refactorings' : CSR, + 'Code simplifications and refactoring' : CSR, + 'Code simplifications and refactorings' : CSR, + + # wrong words + 'Minor fix' : 'Minor bugfixes', + 'Major fix' : 'Major bugfixes', + 'Minor fixes' : 'Minor bugfixes', + 'Major fixes' : 'Major bugfixes', + 'Minor enhancement' : 'Minor features', + 'Minor enhancements' : 'Minor features', + 'Major enhancement' : 'Major features', + 'Major enhancements' : 'Major features', +} + def score(s,fname=None): m = re.match(r'^ +o ([^\n]*)\n(.*)', s, re.M|re.S) if not m: print >>sys.stderr, "Can't score %r from %s"%(s,fname) + heading = m.group(1) + heading = REPLACEMENTS.get(heading, heading) lw = m.group(1).lower() if lw.startswith("major feature"): score = 0 @@ -36,7 +62,7 @@ def score(s,fname=None): else: score = 100 - return (score, lw, m.group(1), m.group(2)) + return (score, lw, heading, m.group(2)) def splitChanges(s): this_entry = [] diff --git a/scripts/maint/updateCopyright.pl b/scripts/maint/updateCopyright.pl index ec82616a19..8bd6a18210 100755 --- a/scripts/maint/updateCopyright.pl +++ b/scripts/maint/updateCopyright.pl @@ -1,7 +1,7 @@ #!/usr/bin/perl -i -w -p -$NEWYEAR=2015; +$NEWYEAR=2016; -s/Copyright(.*) (201[^5]), The Tor Project/Copyright$1 $2-${NEWYEAR}, The Tor Project/; +s/Copyright(.*) (201[^6]), The Tor Project/Copyright$1 $2-${NEWYEAR}, The Tor Project/; s/Copyright(.*)-(20..), The Tor Project/Copyright$1-${NEWYEAR}, The Tor Project/; diff --git a/scripts/maint/updateFallbackDirs.py b/scripts/maint/updateFallbackDirs.py index fd7d350c2e..d110335de4 100755 --- a/scripts/maint/updateFallbackDirs.py +++ b/scripts/maint/updateFallbackDirs.py @@ -26,11 +26,17 @@ import dateutil.parser # bson_lazy provides bson #from bson import json_util +from stem.descriptor.remote import DescriptorDownloader + import logging logging.basicConfig(level=logging.DEBUG) ## Top-Level Configuration +# Perform DirPort checks over IPv6? +# If you know IPv6 works for you, set this to True +PERFORM_IPV6_DIRPORT_CHECKS = False + # Output all candidate fallbacks, or only output selected fallbacks? OUTPUT_CANDIDATES = False @@ -73,7 +79,11 @@ MAX_LIST_FILE_SIZE = 1024 * 1024 ## Eligibility Settings -ADDRESS_AND_PORT_STABLE_DAYS = 120 +# Reduced due to a bug in tor where a relay submits a 0 DirPort when restarted +# This causes OnionOO to (correctly) reset its stability timer +# This issue is fixed in 0.2.7.7 and master. +# Until then, the CUTOFFs below ensure a decent level of stability. +ADDRESS_AND_PORT_STABLE_DAYS = 7 # What time-weighted-fraction of these flags must FallbackDirs # Equal or Exceed? CUTOFF_RUNNING = .95 @@ -84,6 +94,16 @@ CUTOFF_GUARD = .95 # .00 means no bad exits PERMITTED_BADEXIT = .00 +# Clients will time out after 30 seconds trying to download a consensus +# So allow fallback directories half that to deliver a consensus +# The exact download times might change based on the network connection +# running this script, but only by a few seconds +# There is also about a second of python overhead +CONSENSUS_DOWNLOAD_SPEED_MAX = 15.0 +# If the relay fails a consensus check, retry the download +# This avoids delisting a relay due to transient network conditions +CONSENSUS_DOWNLOAD_RETRY = True + ## List Length Limits # The target for these parameters is 20% of the guards in the network @@ -93,7 +113,7 @@ FALLBACK_PROPORTION_OF_GUARDS = None if OUTPUT_CANDIDATES else 0.2 # Limit the number of fallbacks (eliminating lowest by weight) MAX_FALLBACK_COUNT = None if OUTPUT_CANDIDATES else 500 # Emit a C #error if the number of fallbacks is below -MIN_FALLBACK_COUNT = 100 +MIN_FALLBACK_COUNT = 50 ## Fallback Weight Settings @@ -344,6 +364,7 @@ def onionoo_fetch(what, **kwargs): # Check for freshness if last_mod < required_freshness: if last_mod_date is not None: + # This check sometimes fails transiently, retry the script if it does date_message = "Outdated data: last updated " + last_mod_date else: date_message = "No data: never downloaded " @@ -390,7 +411,7 @@ def fetch(what, **kwargs): ## Fallback Candidate Class class Candidate(object): - CUTOFF_ADDRESS_AND_PORT_STABLE = (datetime.datetime.now() + CUTOFF_ADDRESS_AND_PORT_STABLE = (datetime.datetime.utcnow() - datetime.timedelta(ADDRESS_AND_PORT_STABLE_DAYS)) def __init__(self, details): @@ -583,7 +604,7 @@ class Candidate(object): periods = history.keys() periods.sort(key = lambda x: history[x]['interval']) - now = datetime.datetime.now() + now = datetime.datetime.utcnow() newest = now for p in periods: h = history[p] @@ -802,7 +823,57 @@ class Candidate(object): def original_fallback_weight_fraction(self, total_weight): return float(self.original_consensus_weight()) / total_weight - def fallbackdir_line(self, total_weight, original_total_weight): + @staticmethod + def fallback_consensus_dl_speed(dirip, dirport, nickname, max_time): + downloader = DescriptorDownloader() + start = datetime.datetime.utcnow() + # there appears to be about 1 second of overhead when comparing stem's + # internal trace time and the elapsed time calculated here + downloader.get_consensus(endpoints = [(dirip, dirport)]).run() + elapsed = (datetime.datetime.utcnow() - start).total_seconds() + if elapsed > max_time: + status = 'too slow' + else: + status = 'ok' + logging.debug(('Consensus download: %0.2fs %s from %s (%s:%d), ' + + 'max download time %0.2fs.') % (elapsed, status, + nickname, dirip, dirport, + max_time)) + return elapsed + + def fallback_consensus_dl_check(self): + ipv4_speed = Candidate.fallback_consensus_dl_speed(self.dirip, + self.dirport, + self._data['nickname'], + CONSENSUS_DOWNLOAD_SPEED_MAX) + if self.ipv6addr is not None and PERFORM_IPV6_DIRPORT_CHECKS: + # Clients assume the IPv6 DirPort is the same as the IPv4 DirPort + ipv6_speed = Candidate.fallback_consensus_dl_speed(self.ipv6addr, + self.dirport, + self._data['nickname'], + CONSENSUS_DOWNLOAD_SPEED_MAX) + else: + ipv6_speed = None + # Now retry the relay if it took too long the first time + if (ipv4_speed > CONSENSUS_DOWNLOAD_SPEED_MAX + and CONSENSUS_DOWNLOAD_RETRY): + ipv4_speed = Candidate.fallback_consensus_dl_speed(self.dirip, + self.dirport, + self._data['nickname'], + CONSENSUS_DOWNLOAD_SPEED_MAX) + if (self.ipv6addr is not None and PERFORM_IPV6_DIRPORT_CHECKS + and ipv6_speed > CONSENSUS_DOWNLOAD_SPEED_MAX + and CONSENSUS_DOWNLOAD_RETRY): + ipv6_speed = Candidate.fallback_consensus_dl_speed(self.ipv6addr, + self.dirport, + self._data['nickname'], + CONSENSUS_DOWNLOAD_SPEED_MAX) + + return (ipv4_speed <= CONSENSUS_DOWNLOAD_SPEED_MAX + and (not PERFORM_IPV6_DIRPORT_CHECKS + or ipv6_speed <= CONSENSUS_DOWNLOAD_SPEED_MAX)) + + def fallbackdir_line(self, total_weight, original_total_weight, dl_speed_ok): # /* # nickname # flags @@ -813,6 +884,7 @@ class Candidate(object): # "address:dirport orport=port id=fingerprint" # "[ipv6=addr:orport]" # "weight=num", + # # Multiline C comment s = '/*' s += '\n' @@ -839,6 +911,10 @@ class Candidate(object): s += '\n' s += '*/' s += '\n' + # Comment out the fallback directory entry if it's too slow + # See the debug output for which address and port is failing + if not dl_speed_ok: + s += '/* Consensus download failed or was too slow:\n' # Multi-Line C string with trailing comma (part of a string list) # This makes it easier to diff the file, and remove IPv6 lines using grep # Integers don't need escaping @@ -852,6 +928,9 @@ class Candidate(object): cleanse_c_string(self.ipv6addr), cleanse_c_string(self.ipv6orport)) s += '\n' s += '" weight=%d",'%(weight) + if not dl_speed_ok: + s += '\n' + s += '*/' return s ## Fallback Candidate List Class @@ -1249,7 +1328,8 @@ def list_fallbacks(): print describe_fetch_source(s) for x in candidates.fallbacks[:max_count]: - print x.fallbackdir_line(total_weight, pre_clamp_total_weight) + dl_speed_ok = x.fallback_consensus_dl_check() + print x.fallbackdir_line(total_weight, pre_clamp_total_weight, dl_speed_ok) #print json.dumps(candidates[x]._data, sort_keys=True, indent=4, # separators=(',', ': '), default=json_util.default) diff --git a/src/common/address.c b/src/common/address.c index 86c32efdd9..8f1ce9dab7 100644 --- a/src/common/address.c +++ b/src/common/address.c @@ -1,6 +1,6 @@ /* Copyright (c) 2003-2004, Roger Dingledine * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** @@ -148,7 +148,9 @@ tor_addr_make_af_unix(tor_addr_t *a) } /** Set the tor_addr_t in <b>a</b> to contain the socket address contained in - * <b>sa</b>. Return 0 on success and -1 on failure. */ + * <b>sa</b>. IF <b>port_out</b> is non-NULL and <b>sa</b> contains a port, + * set *<b>port_out</b> to that port. Return 0 on success and -1 on + * failure. */ int tor_addr_from_sockaddr(tor_addr_t *a, const struct sockaddr *sa, uint16_t *port_out) @@ -908,6 +910,59 @@ tor_addr_is_loopback(const tor_addr_t *addr) } } +/* Is addr valid? + * Checks that addr is non-NULL and not tor_addr_is_null(). + * If for_listening is true, IPv4 addr 0.0.0.0 is allowed. + * It means "bind to all addresses on the local machine". */ +int +tor_addr_is_valid(const tor_addr_t *addr, int for_listening) +{ + /* NULL addresses are invalid regardless of for_listening */ + if (addr == NULL) { + return 0; + } + + /* Only allow IPv4 0.0.0.0 for_listening. */ + if (for_listening && addr->family == AF_INET + && tor_addr_to_ipv4h(addr) == 0) { + return 1; + } + + /* Otherwise, the address is valid if it's not tor_addr_is_null() */ + return !tor_addr_is_null(addr); +} + +/* Is the network-order IPv4 address v4n_addr valid? + * Checks that addr is not zero. + * Except if for_listening is true, where IPv4 addr 0.0.0.0 is allowed. */ +int +tor_addr_is_valid_ipv4n(uint32_t v4n_addr, int for_listening) +{ + /* Any IPv4 address is valid with for_listening. */ + if (for_listening) { + return 1; + } + + /* Otherwise, zero addresses are invalid. */ + return v4n_addr != 0; +} + +/* Is port valid? + * Checks that port is not 0. + * Except if for_listening is true, where port 0 is allowed. + * It means "OS chooses a port". */ +int +tor_port_is_valid(uint16_t port, int for_listening) +{ + /* Any port value is valid with for_listening. */ + if (for_listening) { + return 1; + } + + /* Otherwise, zero ports are invalid. */ + return port != 0; +} + /** Set <b>dest</b> to equal the IPv4 address in <b>v4addr</b> (given in * network order). */ void diff --git a/src/common/address.h b/src/common/address.h index 76090136d8..53712bde02 100644 --- a/src/common/address.h +++ b/src/common/address.h @@ -1,6 +1,6 @@ /* Copyright (c) 2003-2004, Roger Dingledine * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** @@ -267,6 +267,27 @@ void tor_addr_from_in6(tor_addr_t *dest, const struct in6_addr *in6); int tor_addr_is_null(const tor_addr_t *addr); int tor_addr_is_loopback(const tor_addr_t *addr); +int tor_addr_is_valid(const tor_addr_t *addr, int for_listening); +int tor_addr_is_valid_ipv4n(uint32_t v4n_addr, int for_listening); +#define tor_addr_is_valid_ipv4h(v4h_addr, for_listening) \ + tor_addr_is_valid_ipv4n(htonl(v4h_addr), (for_listening)) +int tor_port_is_valid(uint16_t port, int for_listening); +/* Are addr and port both valid? */ +#define tor_addr_port_is_valid(addr, port, for_listening) \ + (tor_addr_is_valid((addr), (for_listening)) && \ + tor_port_is_valid((port), (for_listening))) +/* Are ap->addr and ap->port both valid? */ +#define tor_addr_port_is_valid_ap(ap, for_listening) \ + tor_addr_port_is_valid(&(ap)->addr, (ap)->port, (for_listening)) +/* Are the network-order v4addr and port both valid? */ +#define tor_addr_port_is_valid_ipv4n(v4n_addr, port, for_listening) \ + (tor_addr_is_valid_ipv4n((v4n_addr), (for_listening)) && \ + tor_port_is_valid((port), (for_listening))) +/* Are the host-order v4addr and port both valid? */ +#define tor_addr_port_is_valid_ipv4h(v4h_addr, port, for_listening) \ + (tor_addr_is_valid_ipv4h((v4h_addr), (for_listening)) && \ + tor_port_is_valid((port), (for_listening))) + int tor_addr_port_split(int severity, const char *addrport, char **address_out, uint16_t *port_out); diff --git a/src/common/aes.c b/src/common/aes.c index 7b6cc39b20..c8a17c837f 100644 --- a/src/common/aes.c +++ b/src/common/aes.c @@ -1,7 +1,7 @@ /* Copyright (c) 2001, Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** @@ -81,47 +81,34 @@ #ifdef USE_EVP_AES_CTR -struct aes_cnt_cipher { - EVP_CIPHER_CTX evp; -}; +/* We don't actually define the struct here. */ aes_cnt_cipher_t * aes_new_cipher(const char *key, const char *iv) { - aes_cnt_cipher_t *cipher; - cipher = tor_malloc_zero(sizeof(aes_cnt_cipher_t)); - EVP_EncryptInit(&cipher->evp, EVP_aes_128_ctr(), + EVP_CIPHER_CTX *cipher = EVP_CIPHER_CTX_new(); + EVP_EncryptInit(cipher, EVP_aes_128_ctr(), (const unsigned char*)key, (const unsigned char *)iv); - return cipher; + return (aes_cnt_cipher_t *) cipher; } void -aes_cipher_free(aes_cnt_cipher_t *cipher) +aes_cipher_free(aes_cnt_cipher_t *cipher_) { - if (!cipher) + if (!cipher_) return; - EVP_CIPHER_CTX_cleanup(&cipher->evp); - memwipe(cipher, 0, sizeof(aes_cnt_cipher_t)); - tor_free(cipher); -} -void -aes_crypt(aes_cnt_cipher_t *cipher, const char *input, size_t len, - char *output) -{ - int outl; - - tor_assert(len < INT_MAX); - - EVP_EncryptUpdate(&cipher->evp, (unsigned char*)output, - &outl, (const unsigned char *)input, (int)len); + EVP_CIPHER_CTX *cipher = (EVP_CIPHER_CTX *) cipher_; + EVP_CIPHER_CTX_cleanup(cipher); + EVP_CIPHER_CTX_free(cipher); } void -aes_crypt_inplace(aes_cnt_cipher_t *cipher, char *data, size_t len) +aes_crypt_inplace(aes_cnt_cipher_t *cipher_, char *data, size_t len) { int outl; + EVP_CIPHER_CTX *cipher = (EVP_CIPHER_CTX *) cipher_; tor_assert(len < INT_MAX); - EVP_EncryptUpdate(&cipher->evp, (unsigned char*)data, + EVP_EncryptUpdate(cipher, (unsigned char*)data, &outl, (unsigned char*)data, (int)len); } int @@ -182,10 +169,6 @@ struct aes_cnt_cipher { * we're testing it or because we have hardware acceleration configured */ static int should_use_EVP = 0; -/** True iff we have tested the counter-mode implementation and found that it - * doesn't have the counter-mode bug from OpenSSL 1.0.0. */ -static int should_use_openssl_CTR = 0; - /** Check whether we should use the EVP interface for AES. If <b>force_val</b> * is nonnegative, we use use EVP iff it is true. Otherwise, we use EVP * if there is an engine enabled for aes-ecb. */ @@ -250,13 +233,9 @@ evaluate_ctr_for_aes(void) if (fast_memneq(output, encrypt_zero, 16)) { /* Counter mode is buggy */ - log_notice(LD_CRYPTO, "This OpenSSL has a buggy version of counter mode; " - "not using it."); - } else { - /* Counter mode is okay */ - log_info(LD_CRYPTO, "This OpenSSL has a good implementation of counter " - "mode; using it."); - should_use_openssl_CTR = 1; + log_err(LD_CRYPTO, "This OpenSSL has a buggy version of counter mode; " + "quitting tor."); + exit(1); } return 0; } @@ -267,29 +246,6 @@ evaluate_ctr_for_aes(void) #define COUNTER(c, n) ((c)->counter ## n) #endif -/** - * Helper function: set <b>cipher</b>'s internal buffer to the encrypted - * value of the current counter. - */ -static inline void -aes_fill_buf_(aes_cnt_cipher_t *cipher) -{ - /* We don't currently use OpenSSL's counter mode implementation because: - * 1) some versions have known bugs - * 2) its attitude towards IVs is not our own - * 3) changing the counter position was not trivial, last time I looked. - * None of these issues are insurmountable in principle. - */ - - if (cipher->using_evp) { - int outl=16, inl=16; - EVP_EncryptUpdate(&cipher->key.evp, cipher->buf, &outl, - cipher->ctr_buf.buf, inl); - } else { - AES_encrypt(cipher->ctr_buf.buf, cipher->buf, &cipher->key.aes); - } -} - static void aes_set_key(aes_cnt_cipher_t *cipher, const char *key, int key_bits); static void aes_set_iv(aes_cnt_cipher_t *cipher, const char *iv); @@ -342,10 +298,7 @@ aes_set_key(aes_cnt_cipher_t *cipher, const char *key, int key_bits) cipher->pos = 0; - if (should_use_openssl_CTR) - memset(cipher->buf, 0, sizeof(cipher->buf)); - else - aes_fill_buf_(cipher); + memset(cipher->buf, 0, sizeof(cipher->buf)); } /** Release storage held by <b>cipher</b> @@ -381,63 +334,6 @@ evp_block128_fn(const uint8_t in[16], EVP_EncryptUpdate(ctx, out, &outl, in, inl); } -/** Encrypt <b>len</b> bytes from <b>input</b>, storing the result in - * <b>output</b>. Uses the key in <b>cipher</b>, and advances the counter - * by <b>len</b> bytes as it encrypts. - */ -void -aes_crypt(aes_cnt_cipher_t *cipher, const char *input, size_t len, - char *output) -{ - if (should_use_openssl_CTR) { - if (cipher->using_evp) { - /* In openssl 1.0.0, there's an if'd out EVP_aes_128_ctr in evp.h. If - * it weren't disabled, it might be better just to use that. - */ - CRYPTO_ctr128_encrypt((const unsigned char *)input, - (unsigned char *)output, - len, - &cipher->key.evp, - cipher->ctr_buf.buf, - cipher->buf, - &cipher->pos, - evp_block128_fn); - } else { - AES_ctr128_encrypt((const unsigned char *)input, - (unsigned char *)output, - len, - &cipher->key.aes, - cipher->ctr_buf.buf, - cipher->buf, - &cipher->pos); - } - return; - } else { - int c = cipher->pos; - if (PREDICT_UNLIKELY(!len)) return; - - while (1) { - do { - if (len-- == 0) { cipher->pos = c; return; } - *(output++) = *(input++) ^ cipher->buf[c]; - } while (++c != 16); - cipher->pos = c = 0; - if (PREDICT_UNLIKELY(! ++COUNTER(cipher, 0))) { - if (PREDICT_UNLIKELY(! ++COUNTER(cipher, 1))) { - if (PREDICT_UNLIKELY(! ++COUNTER(cipher, 2))) { - ++COUNTER(cipher, 3); - UPDATE_CTR_BUF(cipher, 3); - } - UPDATE_CTR_BUF(cipher, 2); - } - UPDATE_CTR_BUF(cipher, 1); - } - UPDATE_CTR_BUF(cipher, 0); - aes_fill_buf_(cipher); - } - } -} - /** Encrypt <b>len</b> bytes from <b>input</b>, storing the results in place. * Uses the key in <b>cipher</b>, and advances the counter by <b>len</b> bytes * as it encrypts. @@ -445,32 +341,26 @@ aes_crypt(aes_cnt_cipher_t *cipher, const char *input, size_t len, void aes_crypt_inplace(aes_cnt_cipher_t *cipher, char *data, size_t len) { - if (should_use_openssl_CTR) { - aes_crypt(cipher, data, len, data); - return; + if (cipher->using_evp) { + /* In openssl 1.0.0, there's an if'd out EVP_aes_128_ctr in evp.h. If + * it weren't disabled, it might be better just to use that. + */ + CRYPTO_ctr128_encrypt((const unsigned char *)data, + (unsigned char *)data, + len, + &cipher->key.evp, + cipher->ctr_buf.buf, + cipher->buf, + &cipher->pos, + evp_block128_fn); } else { - int c = cipher->pos; - if (PREDICT_UNLIKELY(!len)) return; - - while (1) { - do { - if (len-- == 0) { cipher->pos = c; return; } - *(data++) ^= cipher->buf[c]; - } while (++c != 16); - cipher->pos = c = 0; - if (PREDICT_UNLIKELY(! ++COUNTER(cipher, 0))) { - if (PREDICT_UNLIKELY(! ++COUNTER(cipher, 1))) { - if (PREDICT_UNLIKELY(! ++COUNTER(cipher, 2))) { - ++COUNTER(cipher, 3); - UPDATE_CTR_BUF(cipher, 3); - } - UPDATE_CTR_BUF(cipher, 2); - } - UPDATE_CTR_BUF(cipher, 1); - } - UPDATE_CTR_BUF(cipher, 0); - aes_fill_buf_(cipher); - } + AES_ctr128_encrypt((const unsigned char *)data, + (unsigned char *)data, + len, + &cipher->key.aes, + cipher->ctr_buf.buf, + cipher->buf, + &cipher->pos); } } @@ -487,9 +377,6 @@ aes_set_iv(aes_cnt_cipher_t *cipher, const char *iv) #endif cipher->pos = 0; memcpy(cipher->ctr_buf.buf, iv, 16); - - if (!should_use_openssl_CTR) - aes_fill_buf_(cipher); } #endif diff --git a/src/common/aes.h b/src/common/aes.h index df2f3aa65d..821fb742be 100644 --- a/src/common/aes.h +++ b/src/common/aes.h @@ -1,6 +1,6 @@ /* Copyright (c) 2003, Roger Dingledine * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /* Implements a minimal interface to counter-mode AES. */ @@ -13,13 +13,10 @@ * \brief Headers for aes.c */ -struct aes_cnt_cipher; typedef struct aes_cnt_cipher aes_cnt_cipher_t; aes_cnt_cipher_t* aes_new_cipher(const char *key, const char *iv); void aes_cipher_free(aes_cnt_cipher_t *cipher); -void aes_crypt(aes_cnt_cipher_t *cipher, const char *input, size_t len, - char *output); void aes_crypt_inplace(aes_cnt_cipher_t *cipher, char *data, size_t len); int evaluate_evp_for_aes(int force_value); diff --git a/src/common/backtrace.c b/src/common/backtrace.c index 94de1eb5ee..3b762b68e3 100644 --- a/src/common/backtrace.c +++ b/src/common/backtrace.c @@ -1,6 +1,18 @@ -/* Copyright (c) 2013-2015, The Tor Project, Inc. */ +/* Copyright (c) 2013-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ +/** + * \file backtrace.c + * + * \brief Functions to produce backtraces on bugs, crashes, or assertion + * failures. + * + * Currently, we've only got an implementation here using the backtrace() + * family of functions, which are sometimes provided by libc and sometimes + * provided by libexecinfo. We tie into the sigaction() backend in order to + * detect crashes. + */ + #define __USE_GNU #define _GNU_SOURCE 1 diff --git a/src/common/backtrace.h b/src/common/backtrace.h index 838e18eedd..b53fd2c668 100644 --- a/src/common/backtrace.h +++ b/src/common/backtrace.h @@ -1,4 +1,4 @@ -/* Copyright (c) 2013-2015, The Tor Project, Inc. */ +/* Copyright (c) 2013-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #ifndef TOR_BACKTRACE_H diff --git a/src/common/compat.c b/src/common/compat.c index fb22e922ba..af61f024ef 100644 --- a/src/common/compat.c +++ b/src/common/compat.c @@ -1,12 +1,12 @@ /* Copyright (c) 2003-2004, Roger Dingledine * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** * \file compat.c * \brief Wrappers to make calls more portable. This code defines - * functions such as tor_malloc, tor_snprintf, get/set various data types, + * functions such as tor_snprintf, get/set various data types, * renaming, setting socket options, switching user IDs. It is basically * where the non-portable items are conditionally included depending on * the platform. @@ -576,14 +576,17 @@ tor_vasprintf(char **strp, const char *fmt, va_list args) int len, r; va_list tmp_args; va_copy(tmp_args, args); - len = vsnprintf(buf, sizeof(buf), fmt, tmp_args); + /* vsnprintf() was properly checked but tor_vsnprintf() available so + * why not use it? */ + len = tor_vsnprintf(buf, sizeof(buf), fmt, tmp_args); va_end(tmp_args); if (len < (int)sizeof(buf)) { *strp = tor_strdup(buf); return len; } strp_tmp = tor_malloc(len+1); - r = vsnprintf(strp_tmp, len+1, fmt, args); + /* use of tor_vsnprintf() will ensure string is null terminated */ + r = tor_vsnprintf(strp_tmp, len+1, fmt, args); if (r != len) { tor_free(strp_tmp); *strp = NULL; diff --git a/src/common/compat.h b/src/common/compat.h index 8f35dfd110..8cf84580c6 100644 --- a/src/common/compat.h +++ b/src/common/compat.h @@ -1,6 +1,6 @@ /* Copyright (c) 2003-2004, Roger Dingledine * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #ifndef TOR_COMPAT_H @@ -42,6 +42,15 @@ #include <netinet6/in6.h> #endif +#if defined(__has_feature) +# if __has_feature(address_sanitizer) +/* Some of the fancy glibc strcmp() macros include references to memory that + * clang rejects because it is off the end of a less-than-3. Clang hates this, + * even though those references never actually happen. */ +# undef strcmp +# endif +#endif + #include <stdio.h> #include <errno.h> diff --git a/src/common/compat_libevent.c b/src/common/compat_libevent.c index 29e5c5f63c..cc58883750 100644 --- a/src/common/compat_libevent.c +++ b/src/common/compat_libevent.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2009-2015, The Tor Project, Inc. */ +/* Copyright (c) 2009-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** @@ -247,6 +247,7 @@ tor_libevent_initialize(tor_libevent_cfg *torcfg) MOCK_IMPL(struct event_base *, tor_libevent_get_base, (void)) { + tor_assert(the_event_base != NULL); return the_event_base; } diff --git a/src/common/compat_libevent.h b/src/common/compat_libevent.h index 8ee02c0b6d..4b8b300112 100644 --- a/src/common/compat_libevent.h +++ b/src/common/compat_libevent.h @@ -1,4 +1,4 @@ -/* Copyright (c) 2009-2015, The Tor Project, Inc. */ +/* Copyright (c) 2009-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #ifndef TOR_COMPAT_LIBEVENT_H diff --git a/src/common/compat_openssl.h b/src/common/compat_openssl.h index 9c98181bdd..a7bdb0a224 100644 --- a/src/common/compat_openssl.h +++ b/src/common/compat_openssl.h @@ -1,7 +1,7 @@ /* Copyright (c) 2001, Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #ifndef TOR_COMPAT_OPENSSL_H @@ -35,9 +35,11 @@ (((st) == SSL3_ST_SW_SRVR_HELLO_A) || \ ((st) == SSL3_ST_SW_SRVR_HELLO_B)) #define OSSL_HANDSHAKE_STATE int +#define CONST_IF_OPENSSL_1_1_API #else #define STATE_IS_SW_SERVER_HELLO(st) \ ((st) == TLS_ST_SW_SRVR_HELLO) +#define CONST_IF_OPENSSL_1_1_API const #endif #endif diff --git a/src/common/compat_pthreads.c b/src/common/compat_pthreads.c index b1d87d38f2..1b24cc3c2a 100644 --- a/src/common/compat_pthreads.c +++ b/src/common/compat_pthreads.c @@ -1,8 +1,15 @@ /* Copyright (c) 2003-2004, Roger Dingledine * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ +/** + * \file compat_pthreads.c + * + * \brief Implementation for the pthreads-based multithreading backend + * functions. + */ + #define _GNU_SOURCE #include "orconfig.h" diff --git a/src/common/compat_threads.c b/src/common/compat_threads.c index 85ad737574..8f9001258a 100644 --- a/src/common/compat_threads.c +++ b/src/common/compat_threads.c @@ -1,8 +1,16 @@ /* Copyright (c) 2003-2004, Roger Dingledine * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ +/** + * \file compat_threads.c + * + * \brief Cross-platform threading and inter-thread communication logic. + * (Platform-specific parts are written in the other compat_*threads + * modules.) + */ + #define _GNU_SOURCE #include "orconfig.h" diff --git a/src/common/compat_threads.h b/src/common/compat_threads.h index 71562ba3ef..171a9f93ff 100644 --- a/src/common/compat_threads.h +++ b/src/common/compat_threads.h @@ -1,6 +1,6 @@ /* Copyright (c) 2003-2004, Roger Dingledine * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #ifndef TOR_COMPAT_THREADS_H diff --git a/src/common/compat_winthreads.c b/src/common/compat_winthreads.c index 9a87daa871..735be4ad17 100644 --- a/src/common/compat_winthreads.c +++ b/src/common/compat_winthreads.c @@ -1,8 +1,15 @@ /* Copyright (c) 2003-2004, Roger Dingledine * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ +/** + * \file compat_winthreads.c + * + * \brief Implementation for the windows-based multithreading backend + * functions. + */ + #ifdef _WIN32 #include "compat.h" diff --git a/src/common/container.c b/src/common/container.c index 9f40dfa2e0..ddf3bafa91 100644 --- a/src/common/container.c +++ b/src/common/container.c @@ -1,6 +1,6 @@ /* Copyright (c) 2003-2004, Roger Dingledine * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** @@ -59,25 +59,26 @@ smartlist_clear(smartlist_t *sl) sl->num_used = 0; } +#if SIZE_MAX < INT_MAX +#error "We don't support systems where size_t is smaller than int." +#endif + /** Make sure that <b>sl</b> can hold at least <b>size</b> entries. */ static inline void -smartlist_ensure_capacity(smartlist_t *sl, int size) +smartlist_ensure_capacity(smartlist_t *sl, size_t size) { -#if SIZEOF_SIZE_T > SIZEOF_INT + /* Set MAX_CAPACITY to MIN(INT_MAX, SIZE_MAX / sizeof(void*)) */ +#if (SIZE_MAX/SIZEOF_VOID_P) > INT_MAX #define MAX_CAPACITY (INT_MAX) #else #define MAX_CAPACITY (int)((SIZE_MAX / (sizeof(void*)))) -#define ASSERT_CAPACITY #endif - if (size > sl->capacity) { - int higher = sl->capacity; + + tor_assert(size <= MAX_CAPACITY); + + if (size > (size_t) sl->capacity) { + size_t higher = (size_t) sl->capacity; if (PREDICT_UNLIKELY(size > MAX_CAPACITY/2)) { -#ifdef ASSERT_CAPACITY - /* We don't include this assertion when MAX_CAPACITY == INT_MAX, - * since int size; (size <= INT_MAX) makes analysis tools think we're - * doing something stupid. */ - tor_assert(size <= MAX_CAPACITY); -#endif higher = MAX_CAPACITY; } else { while (size > higher) @@ -87,7 +88,7 @@ smartlist_ensure_capacity(smartlist_t *sl, int size) ((size_t)higher)); memset(sl->list + sl->capacity, 0, sizeof(void *) * (higher - sl->capacity)); - sl->capacity = higher; + sl->capacity = (int) higher; } #undef ASSERT_CAPACITY #undef MAX_CAPACITY @@ -97,7 +98,7 @@ smartlist_ensure_capacity(smartlist_t *sl, int size) void smartlist_add(smartlist_t *sl, void *element) { - smartlist_ensure_capacity(sl, sl->num_used+1); + smartlist_ensure_capacity(sl, ((size_t) sl->num_used)+1); sl->list[sl->num_used++] = element; } @@ -105,11 +106,12 @@ smartlist_add(smartlist_t *sl, void *element) void smartlist_add_all(smartlist_t *s1, const smartlist_t *s2) { - int new_size = s1->num_used + s2->num_used; - tor_assert(new_size >= s1->num_used); /* check for overflow. */ + size_t new_size = (size_t)s1->num_used + (size_t)s2->num_used; + tor_assert(new_size >= (size_t) s1->num_used); /* check for overflow. */ smartlist_ensure_capacity(s1, new_size); memcpy(s1->list + s1->num_used, s2->list, s2->num_used*sizeof(void*)); - s1->num_used = new_size; + tor_assert(new_size <= INT_MAX); /* redundant. */ + s1->num_used = (int) new_size; } /** Remove all elements E from sl such that E==element. Preserve @@ -385,7 +387,7 @@ smartlist_insert(smartlist_t *sl, int idx, void *val) if (idx == sl->num_used) { smartlist_add(sl, val); } else { - smartlist_ensure_capacity(sl, sl->num_used+1); + smartlist_ensure_capacity(sl, ((size_t) sl->num_used)+1); /* Move other elements away */ if (idx < sl->num_used) memmove(sl->list + idx + 1, sl->list + idx, @@ -838,9 +840,17 @@ smartlist_sort_pointers(smartlist_t *sl) * * For a 1-indexed array, we would use LEFT_CHILD[x] = 2*x and RIGHT_CHILD[x] * = 2*x + 1. But this is C, so we have to adjust a little. */ -//#define LEFT_CHILD(i) ( ((i)+1)*2 - 1) -//#define RIGHT_CHILD(i) ( ((i)+1)*2 ) -//#define PARENT(i) ( ((i)+1)/2 - 1) + +/* MAX_PARENT_IDX is the largest IDX in the smartlist which might have + * children whose indices fit inside an int. + * LEFT_CHILD(MAX_PARENT_IDX) == INT_MAX-2; + * RIGHT_CHILD(MAX_PARENT_IDX) == INT_MAX-1; + * LEFT_CHILD(MAX_PARENT_IDX + 1) == INT_MAX // impossible, see max list size. + */ +#define MAX_PARENT_IDX ((INT_MAX - 2) / 2) +/* If this is true, then i is small enough to potentially have children + * in the smartlist, and it is save to use LEFT_CHILD/RIGHT_CHILD on it. */ +#define IDX_MAY_HAVE_CHILDREN(i) ((i) <= MAX_PARENT_IDX) #define LEFT_CHILD(i) ( 2*(i) + 1 ) #define RIGHT_CHILD(i) ( 2*(i) + 2 ) #define PARENT(i) ( ((i)-1) / 2 ) @@ -874,6 +884,14 @@ smartlist_heapify(smartlist_t *sl, int idx) { while (1) { + if (! IDX_MAY_HAVE_CHILDREN(idx)) { + /* idx is so large that it cannot have any children, since doing so + * would mean the smartlist was over-capacity. Therefore it cannot + * violate the heap property by being greater than a child (since it + * doesn't have any). */ + return; + } + int left_idx = LEFT_CHILD(idx); int best_idx; diff --git a/src/common/container.h b/src/common/container.h index af7d5c37ce..92ad3f5ec7 100644 --- a/src/common/container.h +++ b/src/common/container.h @@ -1,6 +1,6 @@ /* Copyright (c) 2003-2004, Roger Dingledine * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #ifndef TOR_CONTAINER_H diff --git a/src/common/crypto.c b/src/common/crypto.c index a42c461b14..11f8e1db19 100644 --- a/src/common/crypto.c +++ b/src/common/crypto.c @@ -1,13 +1,14 @@ /* Copyright (c) 2001, Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** * \file crypto.c * \brief Wrapper functions to present a consistent interface to - * public-key and symmetric cryptography operations from OpenSSL. + * public-key and symmetric cryptography operations from OpenSSL and + * other places. **/ #include "orconfig.h" @@ -373,8 +374,12 @@ crypto_global_init(int useAccel, const char *accelName, const char *accelDir) used by Tor and the set of algorithms available in the engine */ log_engine("RSA", ENGINE_get_default_RSA()); log_engine("DH", ENGINE_get_default_DH()); +#ifdef OPENSSL_1_1_API + log_engine("EC", ENGINE_get_default_EC()); +#else log_engine("ECDH", ENGINE_get_default_ECDH()); log_engine("ECDSA", ENGINE_get_default_ECDSA()); +#endif log_engine("RAND", ENGINE_get_default_RAND()); log_engine("RAND (which we will not use)", ENGINE_get_default_RAND()); log_engine("SHA1", ENGINE_get_digest_engine(NID_sha1)); @@ -1323,7 +1328,7 @@ crypto_pk_get_digest(const crypto_pk_t *pk, char *digest_out) /** Compute all digests of the DER encoding of <b>pk</b>, and store them * in <b>digests_out</b>. Return 0 on success, -1 on failure. */ int -crypto_pk_get_all_digests(crypto_pk_t *pk, digests_t *digests_out) +crypto_pk_get_common_digests(crypto_pk_t *pk, common_digests_t *digests_out) { unsigned char *buf = NULL; int len; @@ -1331,7 +1336,7 @@ crypto_pk_get_all_digests(crypto_pk_t *pk, digests_t *digests_out) len = i2d_RSAPublicKey(pk->key, &buf); if (len < 0 || buf == NULL) return -1; - if (crypto_digest_all(digests_out, (char*)buf, len) < 0) { + if (crypto_common_digests(digests_out, (char*)buf, len) < 0) { OPENSSL_free(buf); return -1; } @@ -1505,7 +1510,8 @@ crypto_cipher_encrypt(crypto_cipher_t *env, char *to, tor_assert(to); tor_assert(fromlen < SIZE_T_CEILING); - aes_crypt(env->cipher, from, fromlen, to); + memcpy(to, from, fromlen); + aes_crypt_inplace(env->cipher, to, fromlen); return 0; } @@ -1522,19 +1528,19 @@ crypto_cipher_decrypt(crypto_cipher_t *env, char *to, tor_assert(to); tor_assert(fromlen < SIZE_T_CEILING); - aes_crypt(env->cipher, from, fromlen, to); + memcpy(to, from, fromlen); + aes_crypt_inplace(env->cipher, to, fromlen); return 0; } /** Encrypt <b>len</b> bytes on <b>from</b> using the cipher in <b>env</b>; - * on success, return 0. Does not check for failure. + * on success. Does not check for failure. */ -int +void crypto_cipher_crypt_inplace(crypto_cipher_t *env, char *buf, size_t len) { tor_assert(len < SIZE_T_CEILING); aes_crypt_inplace(env->cipher, buf, len); - return 0; } /** Encrypt <b>fromlen</b> bytes (at least 1) from <b>from</b> with the key in @@ -1644,33 +1650,19 @@ crypto_digest512(char *digest, const char *m, size_t len, == -1); } -/** Set the digests_t in <b>ds_out</b> to contain every digest on the +/** Set the common_digests_t in <b>ds_out</b> to contain every digest on the * <b>len</b> bytes in <b>m</b> that we know how to compute. Return 0 on * success, -1 on failure. */ int -crypto_digest_all(digests_t *ds_out, const char *m, size_t len) +crypto_common_digests(common_digests_t *ds_out, const char *m, size_t len) { - int i; tor_assert(ds_out); memset(ds_out, 0, sizeof(*ds_out)); if (crypto_digest(ds_out->d[DIGEST_SHA1], m, len) < 0) return -1; - for (i = DIGEST_SHA256; i < N_DIGEST_ALGORITHMS; ++i) { - switch (i) { - case DIGEST_SHA256: /* FALLSTHROUGH */ - case DIGEST_SHA3_256: - if (crypto_digest256(ds_out->d[i], m, len, i) < 0) - return -1; - break; - case DIGEST_SHA512: - case DIGEST_SHA3_512: /* FALLSTHROUGH */ - if (crypto_digest512(ds_out->d[i], m, len, i) < 0) - return -1; - break; - default: - return -1; - } - } + if (crypto_digest256(ds_out->d[DIGEST_SHA256], m, len, DIGEST_SHA256) < 0) + return -1; + return 0; } @@ -2084,6 +2076,71 @@ static BIGNUM *dh_param_p_tls = NULL; /** Shared G parameter for our DH key exchanges. */ static BIGNUM *dh_param_g = NULL; +/** Validate a given set of Diffie-Hellman parameters. This is moderately + * computationally expensive (milliseconds), so should only be called when + * the DH parameters change. Returns 0 on success, * -1 on failure. + */ +static int +crypto_validate_dh_params(const BIGNUM *p, const BIGNUM *g) +{ + DH *dh = NULL; + int ret = -1; + + /* Copy into a temporary DH object. */ + if (!(dh = DH_new())) + goto out; + if (!(dh->p = BN_dup(p))) + goto out; + if (!(dh->g = BN_dup(g))) + goto out; + + /* Perform the validation. */ + int codes = 0; + if (!DH_check(dh, &codes)) + goto out; + if (BN_is_word(dh->g, DH_GENERATOR_2)) { + /* Per https://wiki.openssl.org/index.php/Diffie-Hellman_parameters + * + * OpenSSL checks the prime is congruent to 11 when g = 2; while the + * IETF's primes are congruent to 23 when g = 2. + */ + BN_ULONG residue = BN_mod_word(dh->p, 24); + if (residue == 11 || residue == 23) + codes &= ~DH_NOT_SUITABLE_GENERATOR; + } + if (codes != 0) /* Specifics on why the params suck is irrelevant. */ + goto out; + + /* Things are probably not evil. */ + ret = 0; + + out: + if (dh) + DH_free(dh); + return ret; +} + +/** Set the global Diffie-Hellman generator, used for both TLS and internal + * DH stuff. + */ +static void +crypto_set_dh_generator(void) +{ + BIGNUM *generator; + int r; + + if (dh_param_g) + return; + + generator = BN_new(); + tor_assert(generator); + + r = BN_set_word(generator, DH_GENERATOR); + tor_assert(r); + + dh_param_g = generator; +} + /** Set the global TLS Diffie-Hellman modulus. Use the Apache mod_ssl DH * modulus. */ void @@ -2116,6 +2173,8 @@ crypto_set_tls_dh_prime(void) tor_assert(tls_prime); dh_param_p_tls = tls_prime; + crypto_set_dh_generator(); + tor_assert(0 == crypto_validate_dh_params(dh_param_p_tls, dh_param_g)); } /** Initialize dh_param_p and dh_param_g if they are not already @@ -2123,18 +2182,13 @@ crypto_set_tls_dh_prime(void) static void init_dh_param(void) { - BIGNUM *circuit_dh_prime, *generator; + BIGNUM *circuit_dh_prime; int r; if (dh_param_p && dh_param_g) return; circuit_dh_prime = BN_new(); - generator = BN_new(); - tor_assert(circuit_dh_prime && generator); - - /* Set our generator for all DH parameters */ - r = BN_set_word(generator, DH_GENERATOR); - tor_assert(r); + tor_assert(circuit_dh_prime); /* This is from rfc2409, section 6.2. It's a safe prime, and supposedly it equals: @@ -2150,7 +2204,8 @@ init_dh_param(void) /* Set the new values as the global DH parameters. */ dh_param_p = circuit_dh_prime; - dh_param_g = generator; + crypto_set_dh_generator(); + tor_assert(0 == crypto_validate_dh_params(dh_param_p, dh_param_g)); if (!dh_param_p_tls) { crypto_set_tls_dh_prime(); diff --git a/src/common/crypto.h b/src/common/crypto.h index fa2ed610c7..682c4e3253 100644 --- a/src/common/crypto.h +++ b/src/common/crypto.h @@ -1,7 +1,7 @@ /* Copyright (c) 2001, Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** @@ -100,8 +100,9 @@ typedef enum { DIGEST_SHA3_512 = 4, } digest_algorithm_t; #define N_DIGEST_ALGORITHMS (DIGEST_SHA3_512+1) +#define N_COMMON_DIGEST_ALGORITHMS (DIGEST_SHA256+1) -/** A set of all the digests we know how to compute, taken on a single +/** A set of all the digests we commonly compute, taken on a single * string. Any digests that are shorter than 512 bits are right-padded * with 0 bits. * @@ -110,8 +111,8 @@ typedef enum { * once. **/ typedef struct { - char d[N_DIGEST_ALGORITHMS][DIGEST512_LEN]; -} digests_t; + char d[N_COMMON_DIGEST_ALGORITHMS][DIGEST256_LEN]; +} common_digests_t; typedef struct crypto_pk_t crypto_pk_t; typedef struct crypto_cipher_t crypto_cipher_t; @@ -191,7 +192,8 @@ int crypto_pk_private_hybrid_decrypt(crypto_pk_t *env, char *to, int crypto_pk_asn1_encode(crypto_pk_t *pk, char *dest, size_t dest_len); crypto_pk_t *crypto_pk_asn1_decode(const char *str, size_t len); int crypto_pk_get_digest(const crypto_pk_t *pk, char *digest_out); -int crypto_pk_get_all_digests(crypto_pk_t *pk, digests_t *digests_out); +int crypto_pk_get_common_digests(crypto_pk_t *pk, + common_digests_t *digests_out); int crypto_pk_get_fingerprint(crypto_pk_t *pk, char *fp_out,int add_space); int crypto_pk_get_hashed_fingerprint(crypto_pk_t *pk, char *fp_out); @@ -205,7 +207,7 @@ int crypto_cipher_encrypt(crypto_cipher_t *env, char *to, const char *from, size_t fromlen); int crypto_cipher_decrypt(crypto_cipher_t *env, char *to, const char *from, size_t fromlen); -int crypto_cipher_crypt_inplace(crypto_cipher_t *env, char *d, size_t len); +void crypto_cipher_crypt_inplace(crypto_cipher_t *env, char *d, size_t len); int crypto_cipher_encrypt_with_iv(const char *key, char *to, size_t tolen, @@ -220,7 +222,7 @@ int crypto_digest256(char *digest, const char *m, size_t len, digest_algorithm_t algorithm); int crypto_digest512(char *digest, const char *m, size_t len, digest_algorithm_t algorithm); -int crypto_digest_all(digests_t *ds_out, const char *m, size_t len); +int crypto_common_digests(common_digests_t *ds_out, const char *m, size_t len); struct smartlist_t; void crypto_digest_smartlist_prefix(char *digest_out, size_t len_out, const char *prepend, diff --git a/src/common/crypto_curve25519.c b/src/common/crypto_curve25519.c index 2002483265..baa573b0dc 100644 --- a/src/common/crypto_curve25519.c +++ b/src/common/crypto_curve25519.c @@ -1,7 +1,11 @@ -/* Copyright (c) 2012-2015, The Tor Project, Inc. */ +/* Copyright (c) 2012-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ -/* Wrapper code for a curve25519 implementation. */ +/** + * \file crypto_curve25519.c + * + * \brief Wrapper code for a curve25519 implementation. + */ #define CRYPTO_CURVE25519_PRIVATE #include "orconfig.h" diff --git a/src/common/crypto_curve25519.h b/src/common/crypto_curve25519.h index d868b3918b..547e393567 100644 --- a/src/common/crypto_curve25519.h +++ b/src/common/crypto_curve25519.h @@ -1,4 +1,4 @@ -/* Copyright (c) 2012-2015, The Tor Project, Inc. */ +/* Copyright (c) 2012-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #ifndef TOR_CRYPTO_CURVE25519_H diff --git a/src/common/crypto_ed25519.c b/src/common/crypto_ed25519.c index 9df665f66a..1d0cfd01ce 100644 --- a/src/common/crypto_ed25519.c +++ b/src/common/crypto_ed25519.c @@ -1,7 +1,11 @@ -/* Copyright (c) 2013-2015, The Tor Project, Inc. */ +/* Copyright (c) 2013-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ -/* Wrapper code for an ed25519 implementation. */ +/** + * \file crypto_ed25519.c + * + * \brief Wrapper code for an ed25519 implementation. + */ #include "orconfig.h" #ifdef HAVE_SYS_STAT_H diff --git a/src/common/crypto_ed25519.h b/src/common/crypto_ed25519.h index 4fa7ea11cf..44c2ad9775 100644 --- a/src/common/crypto_ed25519.h +++ b/src/common/crypto_ed25519.h @@ -1,4 +1,4 @@ -/* Copyright (c) 2012-2015, The Tor Project, Inc. */ +/* Copyright (c) 2012-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #ifndef TOR_CRYPTO_ED25519_H diff --git a/src/common/crypto_format.c b/src/common/crypto_format.c index d4ecd5b192..bdf9bfd613 100644 --- a/src/common/crypto_format.c +++ b/src/common/crypto_format.c @@ -1,10 +1,14 @@ /* Copyright (c) 2001, Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ -/* Formatting and parsing code for crypto-related data structures. */ +/** + * \file crypto_format.c + * + * \brief Formatting and parsing code for crypto-related data structures. + */ #include "orconfig.h" #ifdef HAVE_SYS_STAT_H diff --git a/src/common/crypto_format.h b/src/common/crypto_format.h index b972d3f509..012e228cc4 100644 --- a/src/common/crypto_format.h +++ b/src/common/crypto_format.h @@ -1,7 +1,7 @@ /* Copyright (c) 2001, Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #ifndef TOR_CRYPTO_FORMAT_H diff --git a/src/common/crypto_pwbox.c b/src/common/crypto_pwbox.c index b866c7ef39..819dc0c39d 100644 --- a/src/common/crypto_pwbox.c +++ b/src/common/crypto_pwbox.c @@ -1,3 +1,12 @@ +/* Copyright (c) 2014-2016, The Tor Project, Inc. */ +/* See LICENSE for licensing information */ + +/** + * \file crypto_pwbox.c + * + * \brief Code for encrypting secrets in a password-protected form and saving + * them to disk. + */ #include "crypto.h" #include "crypto_s2k.h" diff --git a/src/common/crypto_s2k.c b/src/common/crypto_s2k.c index 99f3b2ebbc..a9140c7553 100644 --- a/src/common/crypto_s2k.c +++ b/src/common/crypto_s2k.c @@ -1,9 +1,15 @@ /* Copyright (c) 2001, Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ +/** + * \file crypto_s2k.c + * + * \brief Functions for deriving keys from human-readable passphrases. + */ + #define CRYPTO_S2K_PRIVATE #include "crypto.h" diff --git a/src/common/crypto_s2k.h b/src/common/crypto_s2k.h index 66df24c3c4..9b186450b1 100644 --- a/src/common/crypto_s2k.h +++ b/src/common/crypto_s2k.h @@ -1,7 +1,7 @@ /* Copyright (c) 2001, Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #ifndef TOR_CRYPTO_S2K_H_INCLUDED diff --git a/src/common/di_ops.c b/src/common/di_ops.c index 70f2da7377..5dfe828066 100644 --- a/src/common/di_ops.c +++ b/src/common/di_ops.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2011-2015, The Tor Project, Inc. */ +/* Copyright (c) 2011-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** diff --git a/src/common/di_ops.h b/src/common/di_ops.h index bbb1caa00c..6e77b5cfd7 100644 --- a/src/common/di_ops.h +++ b/src/common/di_ops.h @@ -1,6 +1,6 @@ /* Copyright (c) 2003-2004, Roger Dingledine * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** diff --git a/src/common/log.c b/src/common/log.c index 4a8a7b1165..6c387c6244 100644 --- a/src/common/log.c +++ b/src/common/log.c @@ -1,7 +1,7 @@ /* Copyright (c) 2001, Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** @@ -149,10 +149,14 @@ static int pretty_fn_has_parens = 0; /** Lock the log_mutex to prevent others from changing the logfile_t list */ #define LOCK_LOGS() STMT_BEGIN \ + tor_assert(log_mutex_initialized); \ tor_mutex_acquire(&log_mutex); \ STMT_END /** Unlock the log_mutex */ -#define UNLOCK_LOGS() STMT_BEGIN tor_mutex_release(&log_mutex); STMT_END +#define UNLOCK_LOGS() STMT_BEGIN \ + tor_assert(log_mutex_initialized); \ + tor_mutex_release(&log_mutex); \ + STMT_END /** What's the lowest log level anybody cares about? Checking this lets us * bail out early from log_debug if we aren't debugging. */ @@ -482,9 +486,12 @@ logv,(int severity, log_domain_mask_t domain, const char *funcname, /* check that severity is sane. Overrunning the masks array leads to * interesting and hard to diagnose effects */ assert(severity >= LOG_ERR && severity <= LOG_DEBUG); + /* check that we've initialised the log mutex before we try to lock it */ + assert(log_mutex_initialized); LOCK_LOGS(); - if ((! (domain & LD_NOCB)) && smartlist_len(pending_cb_messages)) + if ((! (domain & LD_NOCB)) && pending_cb_messages + && smartlist_len(pending_cb_messages)) flush_pending_log_callbacks(); if (queue_startup_messages && @@ -939,7 +946,7 @@ flush_pending_log_callbacks(void) smartlist_t *messages, *messages_tmp; LOCK_LOGS(); - if (0 == smartlist_len(pending_cb_messages)) { + if (!pending_cb_messages || 0 == smartlist_len(pending_cb_messages)) { UNLOCK_LOGS(); return; } diff --git a/src/common/memarea.c b/src/common/memarea.c index a8e6d455d6..5d5dc0caf6 100644 --- a/src/common/memarea.c +++ b/src/common/memarea.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2008-2015, The Tor Project, Inc. */ +/* Copyright (c) 2008-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** \file memarea.c @@ -105,56 +105,32 @@ struct memarea_t { memarea_chunk_t *first; /**< Top of the chunk stack: never NULL. */ }; -/** How many chunks will we put into the freelist before freeing them? */ -#define MAX_FREELIST_LEN 4 -/** The number of memarea chunks currently in our freelist. */ -static int freelist_len=0; -/** A linked list of unused memory area chunks. Used to prevent us from - * spinning in malloc/free loops. */ -static memarea_chunk_t *freelist = NULL; - /** Helper: allocate a new memarea chunk of around <b>chunk_size</b> bytes. */ static memarea_chunk_t * -alloc_chunk(size_t sz, int freelist_ok) +alloc_chunk(size_t sz) { tor_assert(sz < SIZE_T_CEILING); - if (freelist && freelist_ok) { - memarea_chunk_t *res = freelist; - freelist = res->next_chunk; - res->next_chunk = NULL; - --freelist_len; - CHECK_SENTINEL(res); - return res; - } else { - size_t chunk_size = freelist_ok ? CHUNK_SIZE : sz; - memarea_chunk_t *res; - chunk_size += SENTINEL_LEN; - res = tor_malloc(chunk_size); - res->next_chunk = NULL; - res->mem_size = chunk_size - CHUNK_HEADER_SIZE - SENTINEL_LEN; - res->next_mem = res->U_MEM; - tor_assert(res->next_mem+res->mem_size+SENTINEL_LEN == - ((char*)res)+chunk_size); - tor_assert(realign_pointer(res->next_mem) == res->next_mem); - SET_SENTINEL(res); - return res; - } + + size_t chunk_size = sz < CHUNK_SIZE ? CHUNK_SIZE : sz; + memarea_chunk_t *res; + chunk_size += SENTINEL_LEN; + res = tor_malloc(chunk_size); + res->next_chunk = NULL; + res->mem_size = chunk_size - CHUNK_HEADER_SIZE - SENTINEL_LEN; + res->next_mem = res->U_MEM; + tor_assert(res->next_mem+res->mem_size+SENTINEL_LEN == + ((char*)res)+chunk_size); + tor_assert(realign_pointer(res->next_mem) == res->next_mem); + SET_SENTINEL(res); + return res; } -/** Release <b>chunk</b> from a memarea, either by adding it to the freelist - * or by freeing it if the freelist is already too big. */ +/** Release <b>chunk</b> from a memarea. */ static void chunk_free_unchecked(memarea_chunk_t *chunk) { CHECK_SENTINEL(chunk); - if (freelist_len < MAX_FREELIST_LEN) { - ++freelist_len; - chunk->next_chunk = freelist; - freelist = chunk; - chunk->next_mem = chunk->U_MEM; - } else { - tor_free(chunk); - } + tor_free(chunk); } /** Allocate and return new memarea. */ @@ -162,7 +138,7 @@ memarea_t * memarea_new(void) { memarea_t *head = tor_malloc(sizeof(memarea_t)); - head->first = alloc_chunk(CHUNK_SIZE, 1); + head->first = alloc_chunk(CHUNK_SIZE); return head; } @@ -197,19 +173,6 @@ memarea_clear(memarea_t *area) area->first->next_mem = area->first->U_MEM; } -/** Remove all unused memarea chunks from the internal freelist. */ -void -memarea_clear_freelist(void) -{ - memarea_chunk_t *chunk, *next; - freelist_len = 0; - for (chunk = freelist; chunk; chunk = next) { - next = chunk->next_chunk; - tor_free(chunk); - } - freelist = NULL; -} - /** Return true iff <b>p</b> is in a range that has been returned by an * allocation from <b>area</b>. */ int @@ -241,12 +204,12 @@ memarea_alloc(memarea_t *area, size_t sz) if (sz+CHUNK_HEADER_SIZE >= CHUNK_SIZE) { /* This allocation is too big. Stick it in a special chunk, and put * that chunk second in the list. */ - memarea_chunk_t *new_chunk = alloc_chunk(sz+CHUNK_HEADER_SIZE, 0); + memarea_chunk_t *new_chunk = alloc_chunk(sz+CHUNK_HEADER_SIZE); new_chunk->next_chunk = chunk->next_chunk; chunk->next_chunk = new_chunk; chunk = new_chunk; } else { - memarea_chunk_t *new_chunk = alloc_chunk(CHUNK_SIZE, 1); + memarea_chunk_t *new_chunk = alloc_chunk(CHUNK_SIZE); new_chunk->next_chunk = chunk; area->first = chunk = new_chunk; } diff --git a/src/common/memarea.h b/src/common/memarea.h index d14f3a2bae..85bca51ad3 100644 --- a/src/common/memarea.h +++ b/src/common/memarea.h @@ -1,4 +1,4 @@ -/* Copyright (c) 2008-2015, The Tor Project, Inc. */ +/* Copyright (c) 2008-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /* Tor dependencies */ @@ -18,7 +18,6 @@ char *memarea_strdup(memarea_t *area, const char *s); char *memarea_strndup(memarea_t *area, const char *s, size_t n); void memarea_get_stats(memarea_t *area, size_t *allocated_out, size_t *used_out); -void memarea_clear_freelist(void); void memarea_assert_ok(memarea_t *area); #endif diff --git a/src/common/procmon.c b/src/common/procmon.c index 346a0c6943..12d53fcd41 100644 --- a/src/common/procmon.c +++ b/src/common/procmon.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2011-2015, The Tor Project, Inc. */ +/* Copyright (c) 2011-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** diff --git a/src/common/procmon.h b/src/common/procmon.h index ccee6bfac6..49ead24092 100644 --- a/src/common/procmon.h +++ b/src/common/procmon.h @@ -1,4 +1,4 @@ -/* Copyright (c) 2011-2015, The Tor Project, Inc. */ +/* Copyright (c) 2011-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** diff --git a/src/common/sandbox.c b/src/common/sandbox.c index d747a87563..4e765b763c 100644 --- a/src/common/sandbox.c +++ b/src/common/sandbox.c @@ -1,7 +1,7 @@ /* Copyright (c) 2001 Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** @@ -427,7 +427,8 @@ sb_open(scmp_filter_ctx ctx, sandbox_cfg_t *filter) } rc = seccomp_rule_add_1(ctx, SCMP_ACT_ERRNO(EACCES), SCMP_SYS(open), - SCMP_CMP_MASKED(1, O_CLOEXEC|O_NONBLOCK|O_NOCTTY, O_RDONLY)); + SCMP_CMP_MASKED(1, O_CLOEXEC|O_NONBLOCK|O_NOCTTY|O_NOFOLLOW, + O_RDONLY)); if (rc != 0) { log_err(LD_BUG,"(Sandbox) failed to add open syscall, received libseccomp " "error %d", rc); diff --git a/src/common/sandbox.h b/src/common/sandbox.h index 21d517fe51..b4cc9f7d18 100644 --- a/src/common/sandbox.h +++ b/src/common/sandbox.h @@ -1,7 +1,7 @@ /* Copyright (c) 2001 Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** diff --git a/src/common/testsupport.h b/src/common/testsupport.h index db7700aeb0..3bb11a7e41 100644 --- a/src/common/testsupport.h +++ b/src/common/testsupport.h @@ -1,4 +1,4 @@ -/* Copyright (c) 2013-2015, The Tor Project, Inc. */ +/* Copyright (c) 2013-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #ifndef TOR_TESTSUPPORT_H diff --git a/src/common/torgzip.c b/src/common/torgzip.c index 5ba8ec4501..71e55f8723 100644 --- a/src/common/torgzip.c +++ b/src/common/torgzip.c @@ -1,6 +1,6 @@ /* Copyright (c) 2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** diff --git a/src/common/torgzip.h b/src/common/torgzip.h index 0fc2deb6c4..00f62dcb45 100644 --- a/src/common/torgzip.h +++ b/src/common/torgzip.h @@ -1,6 +1,6 @@ /* Copyright (c) 2003, Roger Dingledine * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** diff --git a/src/common/torint.h b/src/common/torint.h index 418fe0fabf..58c30f41a8 100644 --- a/src/common/torint.h +++ b/src/common/torint.h @@ -1,6 +1,6 @@ /* Copyright (c) 2003, Roger Dingledine * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** @@ -312,8 +312,6 @@ typedef uint32_t uintptr_t; #ifndef TIME_MAX -#ifdef TIME_T_IS_SIGNED - #if (SIZEOF_TIME_T == SIZEOF_INT) #define TIME_MAX ((time_t)INT_MAX) #elif (SIZEOF_TIME_T == SIZEOF_LONG) @@ -321,25 +319,13 @@ typedef uint32_t uintptr_t; #elif (SIZEOF_TIME_T == 8) #define TIME_MAX ((time_t)INT64_MAX) #else -#error "Can't define (signed) TIME_MAX" +#error "Can't define TIME_MAX" #endif -#else -/* Unsigned case */ -#if (SIZEOF_TIME_T == 4) -#define TIME_MAX ((time_t)UINT32_MAX) -#elif (SIZEOF_TIME_T == 8) -#define TIME_MAX ((time_t)UINT64_MAX) -#else -#error "Can't define (unsigned) TIME_MAX" -#endif -#endif /* time_t_is_signed */ #endif /* ifndef(TIME_MAX) */ #ifndef TIME_MIN -#ifdef TIME_T_IS_SIGNED - #if (SIZEOF_TIME_T == SIZEOF_INT) #define TIME_MIN ((time_t)INT_MIN) #elif (SIZEOF_TIME_T == SIZEOF_LONG) @@ -347,19 +333,9 @@ typedef uint32_t uintptr_t; #elif (SIZEOF_TIME_T == 8) #define TIME_MIN ((time_t)INT64_MIN) #else -#error "Can't define (signed) TIME_MIN" +#error "Can't define TIME_MIN" #endif -#else -/* Unsigned case */ -#if (SIZEOF_TIME_T == 4) -#define TIME_MIN ((time_t)UINT32_MIN) -#elif (SIZEOF_TIME_T == 8) -#define TIME_MIN ((time_t)UINT64_MIN) -#else -#error "Can't define (unsigned) TIME_MIN" -#endif -#endif /* time_t_is_signed */ #endif /* ifndef(TIME_MIN) */ #ifndef SIZE_MAX diff --git a/src/common/torlog.h b/src/common/torlog.h index 3e8667895f..578af7caea 100644 --- a/src/common/torlog.h +++ b/src/common/torlog.h @@ -1,7 +1,7 @@ /* Copyright (c) 2001, Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** diff --git a/src/common/tortls.c b/src/common/tortls.c index 6e4cd3d480..fe21875f91 100644 --- a/src/common/tortls.c +++ b/src/common/tortls.c @@ -1,6 +1,6 @@ /* Copyright (c) 2003, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** @@ -685,13 +685,13 @@ MOCK_IMPL(STATIC tor_x509_cert_t *, cert->cert = x509_cert; - crypto_digest_all(&cert->cert_digests, + crypto_common_digests(&cert->cert_digests, (char*)cert->encoded, cert->encoded_len); if ((pkey = X509_get_pubkey(x509_cert)) && (rsa = EVP_PKEY_get1_RSA(pkey))) { crypto_pk_t *pk = crypto_new_pk_from_rsa_(rsa); - crypto_pk_get_all_digests(pk, &cert->pkey_digests); + crypto_pk_get_common_digests(pk, &cert->pkey_digests); cert->pkey_digests_set = 1; crypto_pk_free(pk); EVP_PKEY_free(pkey); @@ -754,7 +754,7 @@ tor_x509_cert_get_der(const tor_x509_cert_t *cert, /** Return a set of digests for the public key in <b>cert</b>, or NULL if this * cert's public key is not one we know how to take the digest of. */ -const digests_t * +const common_digests_t * tor_x509_cert_get_id_digests(const tor_x509_cert_t *cert) { if (cert->pkey_digests_set) @@ -764,7 +764,7 @@ tor_x509_cert_get_id_digests(const tor_x509_cert_t *cert) } /** Return a set of digests for the public key in <b>cert</b>. */ -const digests_t * +const common_digests_t * tor_x509_cert_get_cert_digests(const tor_x509_cert_t *cert) { return &cert->cert_digests; @@ -911,7 +911,7 @@ tor_tls_cert_is_valid(int severity, } else if (cert_key) { int min_bits = 1024; #ifdef EVP_PKEY_EC - if (EVP_PKEY_type(cert_key->type) == EVP_PKEY_EC) + if (EVP_PKEY_base_id(cert_key) == EVP_PKEY_EC) min_bits = 128; #endif if (EVP_PKEY_bits(cert_key) >= min_bits) @@ -1338,7 +1338,7 @@ find_cipher_by_id(const SSL *ssl, const SSL_METHOD *m, uint16_t cipher) return c != NULL; } # endif -# if OPENSSL_VERSION_NUMBER < OPENSSL_V_SERIES(1,1,0) +# ifndef OPENSSL_1_1_API if (m && m->get_cipher && m->num_ciphers) { /* It would seem that some of the "let's-clean-up-openssl" forks have * removed the get_cipher_by_char function. Okay, so now you get a @@ -1414,7 +1414,7 @@ tor_tls_classify_client_ciphers(const SSL *ssl, /* Now we need to see if there are any ciphers whose presence means we're * dealing with an updated Tor. */ for (i = 0; i < sk_SSL_CIPHER_num(peer_ciphers); ++i) { - SSL_CIPHER *cipher = sk_SSL_CIPHER_value(peer_ciphers, i); + const SSL_CIPHER *cipher = sk_SSL_CIPHER_value(peer_ciphers, i); const char *ciphername = SSL_CIPHER_get_name(cipher); if (strcmp(ciphername, TLS1_TXT_DHE_RSA_WITH_AES_128_SHA) && strcmp(ciphername, TLS1_TXT_DHE_RSA_WITH_AES_256_SHA) && @@ -1431,7 +1431,7 @@ tor_tls_classify_client_ciphers(const SSL *ssl, { const uint16_t *v2_cipher = v2_cipher_list; for (i = 0; i < sk_SSL_CIPHER_num(peer_ciphers); ++i) { - SSL_CIPHER *cipher = sk_SSL_CIPHER_value(peer_ciphers, i); + const SSL_CIPHER *cipher = sk_SSL_CIPHER_value(peer_ciphers, i); uint16_t id = SSL_CIPHER_get_id(cipher) & 0xffff; if (id == 0x00ff) /* extended renegotiation indicator. */ continue; @@ -1453,7 +1453,7 @@ tor_tls_classify_client_ciphers(const SSL *ssl, smartlist_t *elts = smartlist_new(); char *s; for (i = 0; i < sk_SSL_CIPHER_num(peer_ciphers); ++i) { - SSL_CIPHER *cipher = sk_SSL_CIPHER_value(peer_ciphers, i); + const SSL_CIPHER *cipher = sk_SSL_CIPHER_value(peer_ciphers, i); const char *ciphername = SSL_CIPHER_get_name(cipher); smartlist_add(elts, (char*)ciphername); } @@ -1562,7 +1562,8 @@ tor_tls_server_info_callback(const SSL *ssl, int type, int val) STATIC int tor_tls_session_secret_cb(SSL *ssl, void *secret, int *secret_len, STACK_OF(SSL_CIPHER) *peer_ciphers, - SSL_CIPHER **cipher, void *arg) + CONST_IF_OPENSSL_1_1_API SSL_CIPHER **cipher, + void *arg) { (void) secret; (void) secret_len; @@ -1733,8 +1734,13 @@ tor_tls_block_renegotiation(tor_tls_t *tls) void tor_tls_assert_renegotiation_unblocked(tor_tls_t *tls) { +#if defined(SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION) && \ + SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION != 0 long options = SSL_get_options(tls->ssl); tor_assert(0 != (options & SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION)); +#else + (void) tls; +#endif } /** Return whether this tls initiated the connect (client) or diff --git a/src/common/tortls.h b/src/common/tortls.h index 6a4ef9aebe..1a59c67df3 100644 --- a/src/common/tortls.h +++ b/src/common/tortls.h @@ -1,6 +1,6 @@ /* Copyright (c) 2003, Roger Dingledine * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #ifndef TOR_TORTLS_H @@ -82,8 +82,8 @@ struct tor_x509_cert_t { uint8_t *encoded; size_t encoded_len; unsigned pkey_digests_set : 1; - digests_t cert_digests; - digests_t pkey_digests; + common_digests_t cert_digests; + common_digests_t pkey_digests; }; /** Holds a SSL object and its associated data. Members are only @@ -143,9 +143,10 @@ STATIC size_t SSL_SESSION_get_master_key(SSL_SESSION *s, uint8_t *out, STATIC void tor_tls_debug_state_callback(const SSL *ssl, int type, int val); STATIC void tor_tls_server_info_callback(const SSL *ssl, int type, int val); STATIC int tor_tls_session_secret_cb(SSL *ssl, void *secret, - int *secret_len, - STACK_OF(SSL_CIPHER) *peer_ciphers, - SSL_CIPHER **cipher, void *arg); + int *secret_len, + STACK_OF(SSL_CIPHER) *peer_ciphers, + CONST_IF_OPENSSL_1_1_API SSL_CIPHER **cipher, + void *arg); STATIC int find_cipher_by_id(const SSL *ssl, const SSL_METHOD *m, uint16_t cipher); MOCK_DECL(STATIC X509*, tor_tls_create_certificate,(crypto_pk_t *rsa, @@ -237,8 +238,10 @@ tor_x509_cert_t *tor_x509_cert_decode(const uint8_t *certificate, size_t certificate_len); void tor_x509_cert_get_der(const tor_x509_cert_t *cert, const uint8_t **encoded_out, size_t *size_out); -const digests_t *tor_x509_cert_get_id_digests(const tor_x509_cert_t *cert); -const digests_t *tor_x509_cert_get_cert_digests(const tor_x509_cert_t *cert); +const common_digests_t *tor_x509_cert_get_id_digests( + const tor_x509_cert_t *cert); +const common_digests_t *tor_x509_cert_get_cert_digests( + const tor_x509_cert_t *cert); int tor_tls_get_my_certs(int server, const tor_x509_cert_t **link_cert_out, const tor_x509_cert_t **id_cert_out); diff --git a/src/common/util.c b/src/common/util.c index 04f48a4eee..b4355115d1 100644 --- a/src/common/util.c +++ b/src/common/util.c @@ -1,6 +1,6 @@ /* Copyright (c) 2003, Roger Dingledine * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** @@ -2058,57 +2058,95 @@ check_private_dir(const char *dirname, cpd_check_t check, { int r; struct stat st; - char *f; + + tor_assert(dirname); + #ifndef _WIN32 + int fd; unsigned unwanted_bits = 0; const struct passwd *pw = NULL; uid_t running_uid; gid_t running_gid; -#else - (void)effective_user; -#endif - tor_assert(dirname); - f = tor_strdup(dirname); - clean_name_for_stat(f); - log_debug(LD_FS, "stat()ing %s", f); - r = stat(sandbox_intern_string(f), &st); - tor_free(f); - if (r) { + /* + * Goal is to harden the implementation by removing any + * potential for race between stat() and chmod(). + * chmod() accepts filename as argument. If an attacker can move + * the file between stat() and chmod(), a potential race exists. + * + * Several suggestions taken from: + * https://developer.apple.com/library/mac/documentation/Security/Conceptual/SecureCodingGuide/Articles/RaceConditions.html + */ + + /* Open directory. + * O_NOFOLLOW to ensure that it does not follow symbolic links */ + fd = open(sandbox_intern_string(dirname), O_NOFOLLOW); + + /* Was there an error? Maybe the directory does not exist? */ + if (fd == -1) { + if (errno != ENOENT) { + /* Other directory error */ log_warn(LD_FS, "Directory %s cannot be read: %s", dirname, strerror(errno)); return -1; } + + /* Received ENOENT: Directory does not exist */ + + /* Should we create the directory? */ if (check & CPD_CREATE) { log_info(LD_GENERAL, "Creating directory %s", dirname); -#if defined (_WIN32) - r = mkdir(dirname); -#else if (check & CPD_GROUP_READ) { r = mkdir(dirname, 0750); } else { r = mkdir(dirname, 0700); } -#endif + + /* check for mkdir() error */ if (r) { log_warn(LD_FS, "Error creating directory %s: %s", dirname, strerror(errno)); return -1; } + + /* we just created the directory. try to open it again. + * permissions on the directory will be checked again below.*/ + fd = open(sandbox_intern_string(dirname), O_NOFOLLOW); + + if ( fd == -1 ) return -1; + } else if (!(check & CPD_CHECK)) { log_warn(LD_FS, "Directory %s does not exist.", dirname); return -1; } + /* XXXX In the case where check==CPD_CHECK, we should look at the * parent directory a little harder. */ return 0; } + + tor_assert(fd); + + //f = tor_strdup(dirname); + //clean_name_for_stat(f); + log_debug(LD_FS, "stat()ing %s", dirname); + //r = stat(sandbox_intern_string(f), &st); + r = fstat(fd, &st); + if (r == -1) { + log_warn(LD_FS, "fstat() on directory %s failed.", dirname); + close(fd); + return -1; + } + //tor_free(f); + + /* check that dirname is a directory */ if (!(st.st_mode & S_IFDIR)) { log_warn(LD_FS, "%s is not a directory", dirname); + close(fd); return -1; } -#ifndef _WIN32 + if (effective_user) { /* Look up the user and group information. * If we have a problem, bail out. */ @@ -2124,7 +2162,6 @@ check_private_dir(const char *dirname, cpd_check_t check, running_uid = getuid(); running_gid = getgid(); } - if (st.st_uid != running_uid) { const struct passwd *pw = NULL; char *process_ownername = NULL; @@ -2140,6 +2177,7 @@ check_private_dir(const char *dirname, cpd_check_t check, pw ? pw->pw_name : "<unknown>", (int)st.st_uid); tor_free(process_ownername); + close(fd); return -1; } if ( (check & (CPD_GROUP_OK|CPD_GROUP_READ)) @@ -2156,6 +2194,7 @@ check_private_dir(const char *dirname, cpd_check_t check, gr ? gr->gr_name : "<unknown>", (int)st.st_gid); tor_free(process_groupname); + close(fd); return -1; } if (check & (CPD_GROUP_OK|CPD_GROUP_READ)) { @@ -2168,6 +2207,7 @@ check_private_dir(const char *dirname, cpd_check_t check, if (check & CPD_CHECK_MODE_ONLY) { log_warn(LD_FS, "Permissions on directory %s are too permissive.", dirname); + close(fd); return -1; } log_warn(LD_FS, "Fixing permissions on directory %s", dirname); @@ -2177,14 +2217,51 @@ check_private_dir(const char *dirname, cpd_check_t check, new_mode |= 0050; /* Group should have rx */ } new_mode &= ~unwanted_bits; /* Clear the bits that we didn't want set...*/ - if (chmod(dirname, new_mode)) { + if (fchmod(fd, new_mode)) { log_warn(LD_FS, "Could not chmod directory %s: %s", dirname, strerror(errno)); + close(fd); return -1; } else { + close(fd); return 0; } } + close(fd); +#else + /* Win32 case: we can't open() a directory. */ + (void)effective_user; + + char *f = tor_strdup(dirname); + clean_name_for_stat(f); + log_debug(LD_FS, "stat()ing %s", f); + r = stat(sandbox_intern_string(f), &st); + tor_free(f); + if (r) { + if (errno != ENOENT) { + log_warn(LD_FS, "Directory %s cannot be read: %s", dirname, + strerror(errno)); + return -1; + } + if (check & CPD_CREATE) { + log_info(LD_GENERAL, "Creating directory %s", dirname); + r = mkdir(dirname); + if (r) { + log_warn(LD_FS, "Error creating directory %s: %s", dirname, + strerror(errno)); + return -1; + } + } else if (!(check & CPD_CHECK)) { + log_warn(LD_FS, "Directory %s does not exist.", dirname); + return -1; + } + return 0; + } + if (!(st.st_mode & S_IFDIR)) { + log_warn(LD_FS, "%s is not a directory", dirname); + return -1; + } + #endif return 0; } @@ -2900,6 +2977,9 @@ expand_filename(const char *filename) { tor_assert(filename); #ifdef _WIN32 + /* Might consider using GetFullPathName() as described here: + * http://etutorials.org/Programming/secure+programming/Chapter+3.+Input+Validation/3.7+Validating+Filenames+and+Paths/ + */ return tor_strdup(filename); #else if (*filename == '~') { diff --git a/src/common/util.h b/src/common/util.h index 165bc0dcb3..9657003105 100644 --- a/src/common/util.h +++ b/src/common/util.h @@ -1,6 +1,6 @@ /* Copyright (c) 2003-2004, Roger Dingledine * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** @@ -29,6 +29,9 @@ #ifndef O_TEXT #define O_TEXT 0 #endif +#ifndef O_NOFOLLOW +#define O_NOFOLLOW 0 +#endif /* Replace assert() with a variant that sends failures to the log before * calling assert() normally. @@ -45,9 +48,10 @@ #error "Sorry; we don't support building with NDEBUG." #endif -/* Don't use assertions during coverage. It leads to tons of unreached - * branches which in reality are only assertions we didn't hit. */ -#ifdef TOR_COVERAGE +/* Sometimes we don't want to use assertions during branch coverage tests; it + * leads to tons of unreached branches which in reality are only assertions we + * didn't hit. */ +#if defined(TOR_UNIT_TESTS) && defined(DISABLE_ASSERTS_IN_UNIT_TESTS) #define tor_assert(a) STMT_BEGIN \ (void)(a); \ STMT_END diff --git a/src/common/util_format.c b/src/common/util_format.c index 8d99138506..8aae9e8771 100644 --- a/src/common/util_format.c +++ b/src/common/util_format.c @@ -1,9 +1,16 @@ /* Copyright (c) 2001, Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ +/** + * \file util_format.c + * + * \brief Miscellaneous functions for encoding and decoding various things + * in base{16,32,64}. + */ + #include "orconfig.h" #include "torlog.h" #include "util.h" diff --git a/src/common/util_format.h b/src/common/util_format.h index 3fb7e1ac16..a748a4f3cf 100644 --- a/src/common/util_format.h +++ b/src/common/util_format.h @@ -1,7 +1,7 @@ /* Copyright (c) 2001, Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #ifndef TOR_UTIL_FORMAT_H diff --git a/src/common/util_process.c b/src/common/util_process.c index 1e3b02cc9a..848b238318 100644 --- a/src/common/util_process.c +++ b/src/common/util_process.c @@ -1,6 +1,6 @@ /* Copyright (c) 2003-2004, Roger Dingledine * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** diff --git a/src/common/util_process.h b/src/common/util_process.h index c55cd8c5fa..d38301a354 100644 --- a/src/common/util_process.h +++ b/src/common/util_process.h @@ -1,4 +1,4 @@ -/* Copyright (c) 2011-2015, The Tor Project, Inc. */ +/* Copyright (c) 2011-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** diff --git a/src/common/workqueue.c b/src/common/workqueue.c index c467bdf43b..0a38550de0 100644 --- a/src/common/workqueue.c +++ b/src/common/workqueue.c @@ -1,6 +1,13 @@ /* copyright (c) 2013-2015, The Tor Project, Inc. */ /* See LICENSE for licensing information */ +/** + * \file workqueue.c + * + * \brief Implements worker threads, queues of work for them, and mechanisms + * for them to send answers back to the main thread. + */ + #include "orconfig.h" #include "compat.h" #include "compat_threads.h" diff --git a/src/common/workqueue.h b/src/common/workqueue.h index 9ce1eadafc..89282e6f21 100644 --- a/src/common/workqueue.h +++ b/src/common/workqueue.h @@ -1,4 +1,4 @@ -/* Copyright (c) 2013, The Tor Project, Inc. */ +/* Copyright (c) 2013-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #ifndef TOR_WORKQUEUE_H diff --git a/src/config/geoip b/src/config/geoip index 16f1ada2c9..788e39815b 100644 --- a/src/config/geoip +++ b/src/config/geoip @@ -1,4 +1,4 @@ -# Last updated based on January 5 2016 Maxmind GeoLite2 Country +# Last updated based on March 3 2016 Maxmind GeoLite2 Country # wget https://geolite.maxmind.com/download/geoip/database/GeoLite2-Country.mmdb.gz # gunzip GeoLite2-Country.mmdb.gz # python mmdb-convert.py GeoLite2-Country.mmdb @@ -132,11 +132,7 @@ 36700160,36962303,AE 36962304,37224447,IL 37486592,37748735,RU -37748736,38064639,SE -38064640,38064895,DK -38064896,38134783,SE -38134784,38135039,DK -38135040,38273023,SE +37748736,38273023,SE 38273024,38797311,KZ 38797312,39059455,PT 39059456,39321599,GR @@ -144,11 +140,7 @@ 39583744,39845887,RU 39845888,40370175,GB 40370176,40894463,DK -40894464,41094879,IT -41094880,41094887,SI -41094888,41094895,IT -41094896,41094903,SI -41094904,41418751,IT +40894464,41418751,IT 41418752,41943039,GB 41943040,42205183,DK 42205184,42467327,KZ @@ -169,9 +161,7 @@ 68305408,68305919,MX 68305920,68980223,US 68980224,68980479,CA -68980480,70620927,US -70620928,70621183,CA -70621184,71670208,US +68980480,71670208,US 71670209,71670209,NL 71670210,83886080,US 83886081,83951615,SY @@ -221,7 +211,9 @@ 84471808,84473855,IQ 84475904,84498681,DE 84498682,84498682,NL -84498683,84545535,DE +84498683,84517997,DE +84517998,84517998,NL +84517999,84545535,DE 84545536,84549631,GB 84549632,84551679,GE 84551680,84557823,DE @@ -262,14 +254,18 @@ 85368832,85377023,RS 85377024,85385215,IR 85385216,85387263,GB -85387264,85389311,SE +85387264,85387519,SE +85387520,85387775,DK +85387776,85389311,SE 85389312,85391359,DE 85391360,85393407,NL +85394432,85394439,IT 85395456,85395711,TR 85395968,85396223,BE 85396480,85397503,ES 85398528,85398783,SA 85399552,85400063,FR +85400576,85400583,ES 85401600,85403647,IT 85403648,85405695,FR 85405696,85407743,RU @@ -314,9 +310,7 @@ 86177280,86177791,US 86177792,86179839,LI 86179840,86220799,RU -86220800,86222607,JE -86222608,86222615,GB -86222616,86222847,JE +86220800,86222847,JE 86222848,86226943,NL 86226944,86228991,SE 86228992,86231039,BE @@ -438,7 +432,9 @@ 86452300,86452303,IT 86452304,86452367,FR 86452368,86452383,GB -86452384,86452671,FR +86452384,86452615,FR +86452616,86452623,ES +86452624,86452671,FR 86452672,86452735,GB 86452736,86453199,FR 86453200,86453203,ES @@ -523,7 +519,9 @@ 86469994,86469995,ES 86469996,86470002,FR 86470003,86470008,ES -86470009,86470015,FR +86470009,86470012,FR +86470013,86470013,ES +86470014,86470015,FR 86470016,86470047,ES 86470048,86470731,FR 86470732,86470735,BE @@ -580,9 +578,7 @@ 86767616,86769663,IT 86769664,86773759,RU 86773760,86777855,GB -86777856,86778879,AZ -86778880,86779135,RU -86779136,86779903,AZ +86777856,86779903,AZ 86779904,86786047,RU 86786048,86788095,NO 86788096,86790143,NL @@ -668,21 +664,18 @@ 87638016,87640063,UA 87640064,87642111,RS 87642112,87646207,GB -87646208,87646463,FR -87646464,87646975,RE +87646208,87646463,RE +87646464,87646719,FR +87646720,87646975,RE 87646976,87647487,FR 87647488,87647743,RE 87647744,87647999,FR -87648000,87648511,RE -87648512,87648767,FR -87648768,87649535,RE -87649536,87650559,FR +87648000,87648255,RE +87648256,87648767,FR +87648768,87649023,RE +87649024,87650559,FR 87650560,87650815,RE -87650816,87651327,FR -87651328,87651583,RE -87651584,87652607,FR -87652608,87652863,RE -87652864,87654399,FR +87650816,87654399,FR 87654400,87670783,PL 87670784,87672831,DE 87672832,87674879,CH @@ -723,15 +716,18 @@ 87969792,87972863,IM 87972864,87973375,GI 87973376,87973887,IM -87973888,87982079,DE +87973888,87981567,DE +87981568,87982079,TR 87982080,87988479,RU 87988480,87988735,US 87988736,87988863,LV -87988864,87989247,RU +87988864,87988991,LT +87988992,87989247,RU 87989248,87989503,US 87989504,87989759,FR 87989760,87990015,US -87990016,88014847,RU +87990016,87990271,DE +87990272,88014847,RU 88014848,88016895,LY 88016896,88018943,IR 88018944,88020991,GB @@ -751,7 +747,9 @@ 88080384,88604671,GB 88604672,88670207,RU 88670208,88670208,IR -88670209,88866815,RU +88670209,88735743,RU +88735744,88834047,IR +88834048,88866815,RU 88866816,88932351,KZ 88932352,88940543,RU 88940544,88948735,GB @@ -845,6 +843,7 @@ 90718208,90718719,DE 90718720,90719231,FR 90719232,90719487,AT +90719488,90719999,SE 90720000,90720255,GB 90720256,90722303,IQ 90722304,90724351,FI @@ -864,7 +863,9 @@ 90757120,90759167,AT 90759168,90761215,NL 90761216,90763263,KZ -90763264,90764287,IL +90763264,90763519,IL +90763520,90763775,US +90763776,90764287,IL 90764288,90764799,US 90764800,90765311,IL 90765312,90767359,PL @@ -1134,7 +1135,9 @@ 92793056,92793087,ES 92793088,92795123,FR 92795124,92795127,IT -92795128,92796687,FR +92795128,92795631,FR +92795632,92795639,CZ +92795640,92796687,FR 92796688,92796691,DE 92796692,92797355,FR 92797356,92797359,DE @@ -1163,9 +1166,7 @@ 93425664,93426687,GI 93426688,93427085,DE 93427086,93427086,GI -93427087,93427199,DE -93427200,93427455,GI -93427456,93427711,DE +93427087,93427711,DE 93427712,93429759,NO 93429760,93431807,RU 93431808,93433855,ES @@ -1201,8 +1202,8 @@ 93749248,93753343,IT 93753344,93765631,GB 93765632,93774847,SE -93774848,93775871,NO -93775872,93782015,SE +93774848,93776127,NO +93776128,93782015,SE 93782016,93836287,GB 93836288,93836799,NL 93836800,93842351,GB @@ -1645,7 +1646,9 @@ 96786432,96786495,GB 96786496,96788143,FR 96788144,96788159,ES -96788160,96792751,FR +96788160,96792319,FR +96792320,96792383,ES +96792384,96792751,FR 96792752,96792767,DE 96792768,96793583,FR 96793584,96793599,DE @@ -1690,7 +1693,9 @@ 97437696,97439743,AT 97439744,97443839,NL 97443840,97445887,PT -97445888,97447679,RS +97445888,97447167,RS +97447168,97447423,XK +97447424,97447679,RS 97447680,97447935,XK 97447936,97452031,PL 97452032,97517567,UA @@ -1835,8 +1840,14 @@ 100532224,100548863,RO 100548864,100548875,TR 100548876,100548876,RO -100548877,100549119,TR -100549120,100559255,RO +100548877,100549038,TR +100549039,100549039,RO +100549040,100549119,TR +100549120,100554999,RO +100555000,100555000,DE +100555001,100555007,RO +100555008,100555263,DE +100555264,100559255,RO 100559256,100559263,EG 100559264,100559551,RO 100559552,100559615,GB @@ -1913,8 +1924,8 @@ 135945984,136054015,US 136054016,136054271,GB 136054272,136175615,US -136175616,136175871,CA -136175872,136237055,US +136175616,136176127,CA +136176128,136237055,US 136237056,136239103,CA 136239104,136404991,US 136404992,136407039,CA @@ -1933,9 +1944,9 @@ 202385408,202385919,PR 202385920,202706431,US 202706432,202706943,PR -202706944,203272959,US -203272960,203273215,GB -203273216,203658975,US +202706944,202935551,US +202935552,202935807,PR +202935808,203658975,US 203658976,203658991,VI 203658992,203659007,US 203659008,203659263,VI @@ -1945,9 +1956,9 @@ 204048032,204048047,PR 204048048,205884415,US 205884416,205884671,MX -205884672,206010367,US -206010368,206010623,MX -206010624,211597719,US +205884672,211041535,US +211041536,211041791,CA +211041792,211597719,US 211597720,211597727,VI 211597728,212787199,US 212787200,212788223,PR @@ -1959,13 +1970,13 @@ 214698240,214698255,VI 214698256,214698303,US 214698304,214698311,VI -214698312,214779135,US -214779136,214779263,PR -214779264,214783487,US +214698312,214783487,US 214783488,214783743,PR 214783744,214786047,US -214786048,214786431,PR -214786432,219249919,US +214786048,214786303,PR +214786304,214787583,US +214787584,214787839,PR +214787840,219249919,US 219249920,219250175,GB 219250176,219512063,US 219512064,219512319,GB @@ -1977,7 +1988,8 @@ 222691328,222707711,HK 222707712,222740479,AU 222740480,222756863,IE -222756864,222789631,IN +222756864,222773247,US +222773248,222789631,IN 222789632,222806015,JP 222806016,222871551,US 222871552,222879743,HK @@ -1987,7 +1999,10 @@ 222912512,222920703,AU 222920704,222937087,NL 222937088,222941183,AU -222941184,222953471,US +222941184,222945279,US +222945280,222947327,NL +222947328,222949375,JP +222949376,222953471,US 222953472,223019007,IE 223019008,223051775,HK 223051776,223084543,AU @@ -2000,9 +2015,32 @@ 223346688,223477759,NL 223477760,223805439,US 223805440,223838207,GB -223838208,224198655,US -224198656,224264191,NL -224264192,234881023,US +223838208,223922175,US +223922176,223924223,NL +223924224,223928319,HK +223928320,223936511,CA +223936512,224198655,US +224198656,224231423,NL +224231424,224264191,US +224264192,224280575,HK +224280576,224296959,IE +224296960,224395263,NL +224395264,225050623,US +225050624,225051647,IN +225051648,225052159,SG +225052160,225052671,JP +225052672,225053183,CA +225053184,225055231,GB +225055232,225055743,JP +225055744,225060863,US +225060864,225061375,JP +225061376,225061887,CA +225061888,225062399,HK +225062400,225062911,US +225062912,225063423,CA +225063424,225065471,US +225065472,225066495,AU +225066496,234881023,US 234881024,234883071,CN 234883072,234884095,JP 234884096,234885119,CN @@ -2026,6 +2064,12 @@ 234952704,234953727,CN 234953728,234954751,SG 234954752,234971135,NZ +234971136,234972159,CN +234972160,234973183,BD +234973184,234974207,PK +234974208,234975231,CN +234975232,234976255,SG +234976256,234979327,IN 234979328,235012095,MY 235012096,235077631,AU 235077632,235143167,JP @@ -2034,9 +2078,7 @@ 235929600,236978175,CN 236978176,241172479,KR 241172480,241434623,IN -241434624,241469039,SG -241469040,241469047,MY -241469048,241500159,SG +241434624,241500159,SG 241500160,241565695,JP 241565696,241598463,IN 241598464,241599487,CN @@ -2045,6 +2087,14 @@ 241602560,241604607,MY 241604608,241605631,ID 241605632,241606655,CN +241606656,241607679,IN +241607680,241608703,JP +241608704,241609727,PH +241609728,241610751,PK +241610752,241611775,JP +241611776,241612799,CN +241612800,241613823,HK +241613824,241614847,IN 241614848,241623039,JP 241623040,241627135,IN 241627136,241631231,HK @@ -2067,6 +2117,12 @@ 243990528,244318207,IN 244318208,245366783,CN 245366784,247463935,VN +247463936,247464959,IN +247464960,247465983,CN +247465984,247467007,HK +247467008,247469055,IN +247469056,247470079,HK +247470080,247472127,IN 247472128,247476223,JP 247479296,247480319,CN 247480320,247482367,MY @@ -2107,15 +2163,17 @@ 264997120,264997375,US 264997376,265005311,FR 265005312,265005567,US -265005568,265011199,FR +265005568,265007615,FR +265007616,265007871,GB +265007872,265011199,FR 265011200,265023487,US 265023488,265027583,GB 265027584,265060351,US 265060352,265093119,FR -265093120,265523711,US -265523712,265523967,AU -265523968,265533695,US -265533696,265533951,JP +265093120,265531903,US +265531904,265532159,JP +265532160,265533695,US +265533696,265533951,PH 265533952,266062079,US 266062080,266062335,IN 266062336,266070271,US @@ -2146,10 +2204,13 @@ 288212992,288215039,CA 288215040,288223231,US 288223232,288227327,CA -288227328,289652735,US +288227328,289642495,US +289642496,289643007,GB +289643008,289652735,US 289652736,289653759,NL 289653760,289654271,DE -289654272,289655807,US +289654272,289654783,US +289654784,289655807,CZ 289655808,289656831,DE 289656832,289657855,BE 289657856,289658879,AE @@ -2165,7 +2226,8 @@ 289794048,289795071,US 289795072,289796095,GB 289796096,289798143,TR -289798144,289948927,US +289798144,289800191,SA +289800192,289948927,US 289948928,289949055,AT 289949056,289949183,US 289949184,289949695,RU @@ -2211,9 +2273,7 @@ 290270208,290271231,PT 290271232,290277375,US 290277376,290279423,GB -290279424,290280447,US -290280448,290280703,GB -290280704,290295295,US +290279424,290295295,US 290295296,290295807,IN 290295808,290299903,US 290299904,290300927,LU @@ -2231,15 +2291,24 @@ 290377728,290379775,GB 290379776,290423807,US 290423808,290424831,SE -290424832,344195839,US -344195840,344196095,CA -344196096,344260607,US +290424832,300646399,US +300646400,300650495,JP +300650496,300654591,SG +300654592,300658687,US +300658688,300662783,AU +300662784,300666879,GB +300666880,300670975,NL +300670976,300675071,IE +300675072,300679167,IL +300679168,301989119,US +301989120,301989375,AU +301989376,344260607,US 344260608,344260863,GB 344260864,344262655,US 344262656,344262911,GB -344262912,344270860,US -344270861,344270861,GB -344270862,344588799,US +344262912,344270847,US +344270848,344271103,GB +344271104,344588799,US 344588800,344589055,GB 344589056,344592895,US 344592896,344592945,GB @@ -2681,7 +2750,8 @@ 392310016,392310271,US 392310272,392310527,NL 392310528,392312831,US -392312832,392314879,JP +392312832,392313343,JP +392313344,392314879,US 392314880,392331263,SG 392331264,392388607,US 392388608,392396799,HK @@ -2693,31 +2763,198 @@ 392452096,392454143,HK 392454144,392458239,JP 392458240,392460287,SG -392460288,392495103,US +392460288,392462335,US +392462336,392478719,IE +392478720,392495103,US 392495104,392499199,HK 392499200,392503295,SG 392503296,392507391,US 392507392,392511487,IE 392511488,392515583,NL -392515584,392523775,JP -392523776,392548351,US -392548352,392556543,AU -392556544,392579345,US -392579346,392579346,JP -392579347,392659871,US -392659872,392659903,NL -392659904,392765439,US +392515584,392548351,US +392548352,392560639,AU +392560640,392577023,IE +392577024,392585215,JP +392585216,392611839,US +392611840,392612351,HK +392612352,392617983,US +392617984,392626175,HK +392626176,392658943,US +392658944,392659199,JP +392659200,392659327,US +392659328,392659455,AU +392659456,392659583,JP +392659584,392659711,AU +392659712,392659823,US +392659824,392659855,SG +392659856,392667135,US +392667136,392671231,JP +392671232,392672895,US +392672896,392672959,NL +392672960,392673087,SG +392673088,392674591,US +392674592,392674623,HK +392674624,392674751,US +392674752,392674815,HK +392674816,392674879,SG +392674880,392674911,US +392674912,392674943,SG +392674944,392675007,US +392675008,392675023,IE +392675024,392684479,US +392684480,392684495,NL +392684496,392684511,IE +392684512,392684559,NL +392684560,392684575,IE +392684576,392684623,NL +392684624,392684639,IE +392684640,392684687,NL +392684688,392684703,IE +392684704,392684751,NL +392684752,392684767,IE +392684768,392684815,NL +392684816,392684831,IE +392684832,392684943,NL +392684944,392684959,IE +392684960,392685007,NL +392685008,392685023,IE +392685024,392685071,NL +392685072,392685087,IE +392685088,392685135,NL +392685136,392685151,IE +392685152,392685183,NL +392685184,392686607,US +392686608,392686623,AT +392686624,392686639,FI +392686640,392686655,IE +392686656,392686671,US +392686672,392686687,AT +392686688,392686703,FI +392686704,392686719,IE +392686720,392686735,US +392686736,392686751,AT +392686752,392686767,FI +392686768,392686783,IE +392686784,392686799,US +392686800,392686815,AT +392686816,392686831,FI +392686832,392686847,IE +392686848,392686863,US +392686864,392686879,AT +392686880,392686895,FI +392686896,392686911,IE +392686912,392686927,US +392686928,392686943,IE +392686944,392686959,FI +392686960,392686975,AT +392686976,392686991,US +392686992,392687007,IE +392687008,392687023,FI +392687024,392687039,AT +392687040,392687055,US +392687056,392687071,IE +392687072,392687087,FI +392687088,392687103,AT +392687104,392687119,US +392687120,392687135,IE +392687136,392687151,FI +392687152,392687167,AT +392687168,392687183,US +392687184,392687199,IE +392687200,392687215,FI +392687216,392687231,AT +392687232,392687631,US +392687632,392687647,NL +392687648,392687695,US +392687696,392687711,NL +392687712,392687759,US +392687760,392687775,NL +392687776,392687823,US +392687824,392687839,NL +392687840,392687887,US +392687888,392687903,NL +392687904,392689295,US +392689296,392689311,NL +392689312,392689327,AT +392689328,392689343,IE +392689344,392689359,US +392689360,392689375,NL +392689376,392689391,AT +392689392,392689407,IE +392689408,392689423,US +392689424,392689439,NL +392689440,392689455,AT +392689456,392689471,IE +392689472,392689487,US +392689488,392689503,NL +392689504,392689519,AT +392689520,392689535,IE +392689536,392689551,US +392689552,392689567,NL +392689568,392689583,AT +392689584,392689599,IE +392689600,392689615,US +392689616,392689631,NL +392689632,392689647,AT +392689648,392689663,IE +392689664,392689679,US +392689680,392689695,NL +392689696,392689711,AT +392689712,392689727,IE +392689728,392689743,US +392689744,392689759,NL +392689760,392689775,AT +392689776,392689791,IE +392689792,392689807,US +392689808,392689823,NL +392689824,392689839,AT +392689840,392689855,IE +392689856,392689871,US +392689872,392689887,NL +392689888,392689903,AT +392689904,392689919,IE +392689920,392689983,US +392689984,392690015,SG +392690016,392690031,KR +392690032,392690047,MY +392690048,392690079,US +392690080,392690095,KR +392690096,392690111,MY +392690112,392690431,US +392690432,392690687,NL +392690688,392690703,SG +392690704,392690719,HK +392690720,392690879,NL +392690880,392690943,US +392690944,392690975,HK +392690976,392691007,SG +392691008,392691023,HK +392691024,392691039,SG +392691040,392691055,KR +392691056,392691071,MY +392691072,392691327,US +392691328,392691343,NL +392691344,392691359,IE +392691360,392691375,FI +392691376,392691391,AT +392691392,392691407,NL +392691408,392691423,IE +392691424,392691439,FI +392691440,392691455,AT +392691456,392765439,US 392765440,392765695,GB 392765696,394264575,US 394264576,394264831,CA 394270720,394271231,NL 394296320,394296831,NL -394526720,394526975,US -394788864,394789119,US -395051008,395051263,CA +394395648,394395903,US +394526720,395051007,US +395051008,395313151,CA 395313152,397410303,US 397410304,397410559,CA +397672448,397672703,US 397934592,397934847,US +398196736,398196991,KY 398458880,398500351,US 398500352,398500863,NL 398500864,398617599,US @@ -2870,7 +3107,9 @@ 400912128,400912383,SG 400912384,401114367,US 401114368,401114623,DE -401114624,401125119,US +401114624,401115903,US +401115904,401116159,GB +401116160,401125119,US 401125120,401125375,DE 401125376,401129727,US 401129728,401129983,FR @@ -2889,7 +3128,7 @@ 401144576,401144831,MA 401144832,401145087,OM 401145088,401145343,CO -401145344,401145599,SC +401145344,401145599,GB 401145600,401145855,YE 401145856,401211391,CA 401211392,401232375,US @@ -2916,7 +3155,9 @@ 402098176,402098431,BN 402098432,402098687,BH 402098688,402098943,AW -402098944,402105087,US +402098944,402099711,US +402099712,402099967,GB +402099968,402105087,US 402105088,402105343,GB 402105344,402107391,US 402107392,402107647,IT @@ -2929,7 +3170,9 @@ 402169856,402223103,US 402223104,402227199,CA 402227200,402227455,PR -402227456,402231295,US +402227456,402227711,US +402227712,402227967,PR +402227968,402231295,US 402235392,402239301,US 402239302,402239302,CA 402239303,402239473,US @@ -2993,22 +3236,22 @@ 406216704,406241279,US 406241280,406257663,PR 406257664,406274047,US -406274048,406284031,PR -406284032,406284287,US -406284288,406284543,PR -406284544,406284799,US -406284800,406290431,PR +406274048,406288383,PR +406288384,406288639,US +406288640,406288959,PR +406288960,406289151,US +406289152,406289215,PR +406289216,406289279,US +406289280,406290431,PR 406290432,406298623,US 406298624,406306815,PR 406306816,406323199,CA 406323200,406388735,US 406388736,406454271,CA -406454272,406683647,US -406683648,406683775,CA -406683776,406684031,US -406684032,406684159,CA -406684160,406838783,US -406838784,406839295,CA +406454272,406683903,US +406683904,406684159,CA +406684160,406839039,US +406839040,406839295,CA 406839296,406847487,US 406847488,407408639,CA 407408640,407613439,US @@ -3074,14 +3317,18 @@ 412708864,412909567,US 412909568,412942335,CA 412942336,412946431,US -412946432,412950527,PR +412946432,412948543,PR +412948544,412948735,US +412948736,412950527,PR 412950528,412958719,US 412958720,413007871,CA 413007872,413908991,US 413908992,413925375,PR 413925376,414502783,US 414502784,414502911,CA -414502912,415760383,US +414502912,414503295,US +414503296,414503423,CA +414503424,415760383,US 415760384,416022527,CA 416022528,416059391,US 416059392,416088063,CA @@ -3128,36 +3375,56 @@ 418766848,418770943,CA 418770944,418775039,US 418775040,418799615,CA -418799616,419430399,US -419430400,436207615,GB +418799616,419035519,US +419035520,419035647,VI +419035648,419430399,US +419430400,423757823,GB +423757824,423759871,US +423759872,436207615,GB 436207616,452984831,US 452984832,452985855,JP 452985856,452986879,MY 452986880,452987903,SG 452987904,452988927,VN 452988928,452989183,US -452989184,452989439,JP -452989440,452990207,US -452990208,452990463,JP -452990464,452990719,US -452990720,452991231,JP -452991232,452991487,US -452991488,452992767,JP +452989184,452989695,JP +452989696,452989951,US +452989952,452990463,JP +452990464,452990975,US +452990976,452992767,JP 452992768,452993023,US 452993024,452997119,JP 452997120,453001215,IN 453001216,453009407,AU 453009408,453017599,BD +453017600,453019647,CN +453019648,453023743,IN +453023744,453024767,TW +453024768,453025791,HK +453025792,453027839,CN +453027840,453031935,IN +453031936,453032959,PK +453032960,453033983,CN +453033984,453035007,HK +453035008,453036031,ID +453036032,453037055,IN +453037056,453040127,CN +453040128,453045247,IN +453045248,453046271,KR +453046272,453047295,VN +453047296,453050367,IN 453050368,453115903,KR 453115904,453246975,VN 453246976,453509119,IN 453509120,455081983,CN 455081984,455213055,AU -455213056,455215359,NP -455215360,455215615,RU -455215616,455245823,NP +455213056,455245823,NP 455245824,455258111,JP -455258112,455262207,SG +455258112,455258623,SG +455258624,455258688,KH +455258689,455260672,SG +455260673,455260736,KH +455260737,455262207,SG 455262208,455270399,JP 455270400,455272447,AU 455272448,455274495,CN @@ -3321,8 +3588,8 @@ 460983296,460984319,HK 460984320,460988415,PG 460988416,460994559,JP -460994560,460995327,MY -460995328,460995583,SG +460994560,460995071,MY +460995072,460995583,SG 460995584,460996607,IN 460996608,461008895,JP 461008896,461012991,AU @@ -3337,7 +3604,9 @@ 461058048,461062143,HK 461062144,461078527,IN 461078528,461094911,FJ -461094912,461096959,HK +461094912,461095423,HK +461095424,461095935,SG +461095936,461096959,HK 461096960,461099007,TW 461099008,461100031,JP 461100032,461101055,MN @@ -3430,7 +3699,8 @@ 520339456,520343551,UA 520343552,520355839,GB 520355840,520421375,ES -520421376,520486911,BE +520421376,520454143,RO +520454144,520486911,BE 520486912,520488959,NL 520488960,520489983,IT 520489984,520490495,RU @@ -3482,7 +3752,9 @@ 520505344,520507391,GB 520507392,520511487,TR 520511488,520519679,UA -520519680,520552447,PL +520519680,520524287,PL +520524288,520524543,GB +520524544,520552447,PL 520552448,520554495,NL 520554496,520556543,GB 520556544,520560639,FI @@ -3536,7 +3808,7 @@ 520978432,520980479,RU 520980480,520982527,IT 520982528,520984575,RU -520984576,520986623,NG +520984576,520986623,GB 520986624,520988671,PS 520988672,520990719,DE 520990720,520992767,RU @@ -3564,9 +3836,7 @@ 521037568,521037823,TH 521037824,521039871,RO 521039872,521043967,IR -521043968,521045286,RO -521045287,521045287,IT -521045288,521048063,RO +521043968,521048063,IT 521048064,521052159,IR 521052160,521056255,RO 521056256,521057279,LT @@ -3599,7 +3869,9 @@ 521404416,521535487,NL 521535488,521537535,GB 521539584,521541631,BE -521541632,521543679,DE +521541632,521542655,DE +521542656,521542783,CH +521542784,521543679,DE 521543680,521545727,RU 521545728,521547775,GB 521547776,521551871,AL @@ -3612,8 +3884,7 @@ 521563136,521564159,NL 521564160,521565183,GR 521565184,521565439,GB -521565440,521565695,US -521565696,521566207,GR +521565440,521566207,GR 521566208,521568255,LU 521568256,521601023,PT 521601024,521666559,RU @@ -3649,7 +3920,9 @@ 521717760,521718783,IQ 521718784,521719807,IR 521719808,521721855,UA -521721856,521725951,GB +521721856,521724159,GB +521724160,521724415,AU +521724416,521725951,GB 521725952,521727999,IR 521728000,521732095,FR 521732096,521736191,GB @@ -4119,9 +4392,7 @@ 532310016,532312063,GR 532312064,532312983,JE 532312984,532312991,GB -532312992,532313855,JE -532313856,532313983,GG -532313984,532314111,JE +532312992,532314111,JE 532314112,532316159,DE 532316160,532324351,RU 532324352,532328447,NL @@ -4272,13 +4543,13 @@ 533858752,533858815,AT 533858816,533858895,TR 533858896,533858903,AT -533858904,533859647,TR +533858904,533859071,TR +533859072,533859087,AT +533859088,533859647,TR 533859648,533859663,AT 533859664,533860351,TR 533862400,533864447,GB -533864448,533886719,TR -533886720,533886975,JP -533886976,533889023,TR +533864448,533889023,TR 533889024,533891071,GB 533891072,533893119,RU 533893120,533895167,ES @@ -4334,7 +4605,8 @@ 534374400,534376447,FR 534376448,534378495,IE 534380544,534511615,AE -534511616,534512639,BZ +534511616,534511871,NL +534511872,534512639,BZ 534512640,534512895,NL 534512896,534513151,SE 534513152,534513215,BS @@ -4431,9 +4703,11 @@ 539656192,539660287,IN 539660288,539666431,HK 539666432,539668479,JP -539668480,539668819,AU -539668820,539668823,NZ -539668824,539670527,AU +539668480,539668735,AU +539668736,539668891,NZ +539668892,539668892,AU +539668893,539668991,NZ +539668992,539670527,AU 539670528,539672575,JP 539672576,540725247,US 540725248,540727295,FR @@ -4443,7 +4717,9 @@ 540733440,540737535,NL 540737536,540737757,BZ 540737758,540737758,BR -540737759,540783936,BZ +540737759,540753919,BZ +540753920,540754175,AR +540754176,540783936,BZ 540783937,540783937,BR 540783938,540803071,BZ 540803072,540811263,US @@ -4493,11 +4769,7 @@ 544436772,544436775,CA 544436776,548441343,US 548441344,548441599,PR -548441600,586972927,US -586972928,586973183,CA -586973184,586978047,US -586978048,586978303,BN -586978304,587006719,US +548441600,587006719,US 587006720,587006975,GB 587006976,603979775,US 603979776,603980799,CN @@ -4525,6 +4797,52 @@ 620232704,620494847,CN 620494848,620625919,NP 620625920,620691455,CN +620691456,620699647,IN +620699648,620700671,PK +620700672,620701695,SG +620701696,620703743,PK +620703744,620704767,NZ +620704768,620705791,BD +620705792,620706815,HK +620706816,620707839,PK +620707840,620708863,IN +620708864,620709887,HK +620709888,620711935,AU +620711936,620712959,HK +620712960,620715007,IN +620715008,620716031,AU +620716032,620718079,PK +620718080,620720127,IN +620720128,620721151,AU +620721152,620722175,CN +620722176,620723199,JP +620723200,620724223,SG +620724224,620725247,CN +620725248,620726271,IN +620726272,620727295,TH +620727296,620728319,MY +620728320,620729343,KH +620729344,620731391,SG +620731392,620732415,IN +620732416,620733439,JP +620733440,620734463,CN +620734464,620735487,IN +620735488,620737535,CN +620737536,620739583,IN +620739584,620740607,BD +620740608,620741631,CN +620741632,620743679,IN +620743680,620744703,HK +620744704,620745727,IN +620745728,620746751,PK +620746752,620747775,JP +620747776,620748799,PH +620748800,620751871,IN +620751872,620752895,JP +620752896,620753919,IN +620753920,620754943,PH +620754944,620755967,BD +620755968,620756991,IN 620756992,620759039,IE 620759040,620763135,NL 620763136,620765183,EE @@ -4574,7 +4892,9 @@ 621330432,621346815,PL 621346816,621355007,RU 621355008,621357055,UA -621357056,621361151,RU +621357056,621358079,RU +621358080,621358591,US +621358592,621361151,RU 621361152,621363199,GB 621363200,621381631,RU 621381632,621383679,FR @@ -4629,9 +4949,7 @@ 621939712,621940479,RU 621940480,621942527,GB 621942528,621969407,RU -621971456,621971711,GB -621971712,621973247,IM -621973248,621973503,GB +621971456,621973503,IM 621973504,621975551,IE 621975552,621977599,RU 621977600,621981695,FR @@ -4688,7 +5006,9 @@ 622518272,622518527,GB 622518528,622519281,NL 622519282,622519282,GB -622519283,622520319,NL +622519283,622519351,NL +622519352,622519359,FR +622519360,622520319,NL 622520320,622522367,RU 622522368,622524415,FR 622524416,622526463,ES @@ -4853,7 +5173,9 @@ 624646400,624646431,BE 624646432,624646583,FR 624646584,624646591,NL -624646592,624647171,FR +624646592,624646651,FR +624646652,624646655,PT +624646656,624647171,FR 624647172,624647183,ES 624647184,624647459,FR 624647460,624647463,GB @@ -5099,9 +5421,9 @@ 625506304,625508351,PL 625508352,625512447,AZ 625512448,625514495,DE -625514496,625515007,GG -625515008,625515519,GB -625515520,625515775,GG +625514496,625514751,GG +625514752,625515263,GB +625515264,625515775,GG 625515776,625516031,GB 625516032,625516287,GG 625516288,625516543,GB @@ -5233,8 +5555,12 @@ 628847616,628848639,GB 628848640,628850687,DE 628850688,628851455,SE -628851456,628852479,NO -628852480,628867071,SE +628851456,628851711,NO +628851712,628852223,SE +628852224,628852723,NO +628852724,628852727,SE +628852728,628852735,NO +628852736,628867071,SE 628867072,628869119,IR 628869120,628871167,PL 628871168,628873215,US @@ -5412,7 +5738,7 @@ 630999680,631001087,RO 631001088,631005183,MD 631005184,631006207,IT -631006208,631007231,MD +631006208,631007231,IR 631007232,631007487,KR 631007488,631007743,RO 631007744,631007871,GB @@ -5436,7 +5762,8 @@ 631036160,631036415,RO 631036416,631036543,GB 631036544,631039999,RO -631040000,631043071,MD +631040000,631042047,IR +631042048,631043071,MD 631043072,631043839,RO 631043840,631045119,MD 631045120,631046143,RO @@ -5497,7 +5824,9 @@ 633290752,633298943,IR 633298944,633307135,GB 633307136,633339903,NO -633339904,633602047,RU +633339904,633599743,RU +633599744,633599999,DE +633600000,633602047,RU 633602048,633864191,SE 633864192,633880575,NO 633880576,633884671,RU @@ -5524,9 +5853,7 @@ 634075136,634077183,NL 634077184,634093567,BA 634093568,634109951,GB -634109952,634110975,IE -634110976,634111231,GB -634111232,634111999,IE +634109952,634111999,IE 634112000,634114047,RU 634114048,634116095,SE 634116096,634118143,NL @@ -5621,7 +5948,8 @@ 635224064,635240447,HU 635240448,635256831,IR 635273216,635281407,UA -635281408,635283455,RO +635281408,635281663,TR +635281664,635283455,RO 635283456,635283967,DE 635283968,635284223,RO 635284224,635284418,DE @@ -5649,7 +5977,9 @@ 635723776,635725823,ES 635725824,635727871,US 635727872,635729919,RU -635729920,635748351,DE +635729920,635733209,DE +635733210,635733210,PT +635733211,635748351,DE 635748352,635764735,IE 635764736,635830271,UA 635830272,635842559,DE @@ -5659,7 +5989,9 @@ 635856896,635858943,TR 635858944,635860991,RU 635860992,635863039,BE -635863040,635893503,RU +635863040,635864831,RU +635864832,635865087,NL +635865088,635893503,RU 635893504,635893759,AZ 635893760,635894527,RU 635894528,635894783,KZ @@ -5782,51 +6114,51 @@ 641738240,641738495,CA 641738496,641761535,US 641761536,641761791,CA -641761792,641763071,US -641763072,641763839,CA +641761792,641763327,US +641763328,641763839,CA 641763840,641765375,US 641765376,641765887,CA -641765888,641766911,US +641765888,641766399,US +641766400,641766655,CA +641766656,641766911,US 641766912,641767167,CA -641767168,641771519,US +641767168,641768703,US +641768704,641768959,CA +641768960,641771519,US 641771520,641772543,CA 641772544,641773055,US 641773056,641773567,CA -641773568,641775615,US +641773568,641774079,US +641774080,641774335,CA +641774336,641775615,US 641775616,641775871,CA 641775872,641776639,US 641776640,641777407,CA 641777408,641777663,US 641777664,641777919,CA -641777920,641779199,US +641777920,641778175,US +641778176,641778431,CA +641778432,641779199,US 641779200,641779327,CA -641779328,641828351,US -641828352,641828607,MX -641828608,641829057,US -641829058,641829058,MX -641829059,641829119,US -641829120,641829375,MX +641779328,641780735,US +641780736,641780991,CA +641780992,641828863,US +641828864,641829375,MX 641829376,641830143,US 641830144,641830399,MX -641830400,642089215,US -642089216,642089471,CA -642089472,642092543,US +641830400,642089471,US +642089472,642089727,CA +642089728,642092543,US 642092544,642092799,CA 642092800,642093311,US -642093312,642093823,CA -642093824,642094079,US +642093312,642093567,CA +642093568,642094079,US 642094080,642094591,CA 642094592,642097919,US 642097920,642098175,CA 642098176,642113535,US 642113536,642115583,AU -642115584,642387967,US -642387968,642388223,CA -642388224,642390015,US -642390016,642390527,CA -642390528,642391039,US -642391040,642391295,CA -642391296,642395135,US +642115584,642395135,US 642395136,642395391,CA 642395392,642793471,US 642793472,642793983,CA @@ -5837,8 +6169,8 @@ 643219528,643295231,US 643295232,643295487,PR 643295488,643296767,US -643296768,643297023,PR -643297024,643302911,US +643296768,643297279,PR +643297280,643302911,US 643302912,643303039,CA 643303040,643303167,US 643303168,643303423,CA @@ -5848,49 +6180,39 @@ 643318272,643319039,CA 643319040,643346431,US 643346432,643346943,CA -643346944,644055039,US -644055040,644055807,CA +643346944,644055295,US +644055296,644055807,CA 644055808,644056063,US -644056064,644056319,CA -644056320,644056575,US -644056576,644056831,CA +644056064,644056831,CA 644056832,644057087,US 644057088,644057599,CA -644057600,644058367,US -644058368,644058879,CA +644057600,644058111,US +644058112,644058879,CA 644058880,644059135,US -644059136,644059391,CA -644059392,644060927,US -644060928,644061183,CA -644061184,644063231,US +644059136,644059647,CA +644059648,644060671,US +644060672,644061631,CA +644061632,644061663,US +644061664,644061695,CA +644061696,644063231,US 644063232,644063743,CA 644063744,644063999,US 644064000,644064767,CA 644064768,644065055,US 644065056,644065279,CA 644065280,644066303,US -644066304,644066815,CA -644066816,644067071,US -644067072,644067327,CA -644067328,644067583,US -644067584,644067839,CA +644066304,644066559,CA +644066560,644067327,US +644067328,644067839,CA 644067840,644069631,US -644069632,644069887,CA -644069888,644070143,US -644070144,644070399,CA +644069632,644070399,CA 644070400,644070655,US -644070656,644071167,CA -644071168,644084479,US +644070656,644071423,CA +644071424,644084479,US 644084480,644084735,GU -644084736,644236031,US -644236032,644236287,CA -644236288,644239615,US +644084736,644239615,US 644239616,644239871,CA -644239872,644247551,US -644247552,644247807,CA -644247808,644248831,US -644248832,644249087,CA -644249088,644268543,US +644239872,644268543,US 644268544,644268569,CA 644268570,644268570,US 644268571,644268613,CA @@ -5899,86 +6221,89 @@ 644268800,644323327,US 644323328,644323583,CA 644323584,644324095,US -644324096,644324351,CA -644324352,644389375,US -644389376,644389631,CA -644389632,644389887,US -644389888,644390911,CA +644324096,644324607,CA +644324608,644389631,US +644389632,644390911,CA 644390912,644399103,US 644399104,644399359,CA 644399360,644403199,US 644403200,644403711,CA -644403712,644413439,US +644403712,644408063,US +644408064,644408319,CA +644408320,644413439,US 644413440,644413695,MX 644413696,644414207,US 644414208,644414463,CA 644414464,644422911,US 644422912,644423423,JP -644423424,644524607,US +644423424,644424703,US +644424704,644424959,CA +644424960,644524607,US 644524608,644524671,CA 644524672,644569087,US 644569088,644569599,PR 644569600,644569855,US -644569856,644570367,PR -644570368,644570879,US +644569856,644570111,PR +644570112,644570879,US 644570880,644571135,PR 644571136,644628735,US 644628736,644628991,CA -644628992,644630271,US -644630272,644630527,CA -644630528,644631039,US +644628992,644631039,US 644631040,644631295,CA -644631296,644634367,US +644631296,644633343,US +644633344,644633599,CA +644633600,644634367,US 644634368,644634623,CA -644634624,644718591,US -644718592,644718911,CA -644718912,644759551,US +644634624,644718847,US +644718848,644718911,CA +644718912,644719103,RU +644719104,644719871,US +644719872,644720127,CA +644720128,644759551,US 644759552,644759807,CA 644759808,644760575,US 644760576,644760831,CA 644760832,644761343,US 644761344,644761599,CA -644761600,644762879,US -644762880,644763135,CA -644763136,644763903,US -644763904,644764159,CA +644761600,644763647,US +644763648,644764159,CA 644764160,644765439,US 644765440,644765695,CA -644765696,644767878,US +644765696,644766975,US +644766976,644767231,CA +644767232,644767878,US 644767879,644767879,CA -644767880,644768511,US -644768512,644768767,CA -644768768,644775679,US +644767880,644775679,US 644775680,644775935,CA -644775936,644834047,US -644834048,644834303,CA -644834304,644834815,US -644834816,644835327,CA +644775936,644835071,US +644835072,644835327,CA 644835328,644838655,US 644838656,644839423,CA 644839424,644840447,US -644840448,644840703,CA -644840704,644875007,US +644840448,644840959,CA +644840960,644845823,US +644845824,644846079,RU +644846080,644874495,US +644874496,644874751,CA +644874752,644875007,US 644875008,644875263,CA -644875264,644894975,US -644894976,644895231,CA -644895232,644897023,US +644875264,644876223,US +644876224,644876255,CA +644876256,644897023,US 644897024,644897279,CA 644897280,644897791,US 644897792,644898047,CA -644898048,644898815,US -644898816,644899071,CA -644899072,644899839,US +644898048,644899839,US 644899840,644900095,CA -644900096,644901631,US -644901632,644901887,CA -644901888,644903167,US -644903168,644903679,CA -644903680,644904959,US -644904960,644905215,CA -644905216,644906239,US +644900096,644901375,US +644901376,644901887,CA +644901888,644903679,US +644903680,644903935,CA +644903936,644906239,US 644906240,644906495,CA -644906496,644987135,US +644906496,644981759,US +644981760,644982015,CA +644982016,644987135,US 644987136,644987391,CA 644987392,644987647,US 644987648,644987903,CA @@ -5994,25 +6319,29 @@ 645223424,645223679,CA 645223680,645225471,US 645225472,645225727,CA -645225728,645229311,US -645229312,645229823,CA -645229824,645483263,US +645225728,645227519,US +645227520,645227775,CA +645227776,645229055,US +645229056,645230079,CA +645230080,645481405,US +645481406,645481406,CA +645481407,645481471,US +645481472,645481727,CA +645481728,645483263,US 645483264,645483519,CA -645483520,645484543,US -645484544,645485055,CA -645485056,645526527,US +645483520,645526015,US +645526016,645526271,CA +645526272,645526527,US 645526528,645526783,CA 645526784,645527295,US 645527296,645527551,CA -645527552,645528319,US -645528320,645528575,CA -645528576,645529343,US -645529344,645529599,CA -645529600,645540351,US +645527552,645528191,US +645528192,645528575,CA +645528576,645540351,US 645540352,645540607,CA 645540608,645547007,US -645547008,645547519,CA -645547520,645576703,US +645547008,645547263,CA +645547264,645576703,US 645576704,645576997,CA 645576998,645576998,US 645576999,645577215,CA @@ -6024,31 +6353,45 @@ 645644928,645645055,MX 645645056,645647103,US 645647104,645647359,MX -645647360,645704447,US +645647360,645647615,US +645647616,645647871,MX +645647872,645704447,US 645704448,645704703,MX 645704704,645705215,US 645705216,645705471,MX 645705472,645710079,US 645710080,645710335,MX -645710336,645737983,US +645710336,645711871,US +645711872,645712127,MX +645712128,645737983,US 645737984,645738239,PR 645738240,645873663,US 645873664,645873919,CA 645873920,645874175,US 645874176,645874431,CA -645874432,645876479,US -645876480,645876735,CA -645876736,645984255,US +645874432,645876735,US +645876736,645876991,CA +645876992,645984255,US 645984256,645988351,CA 645988352,645989450,US 645989451,645989451,CA -645989452,646160383,US +645989452,646082815,US +646082816,646083327,CA +646083328,646084095,US +646084096,646084351,CA +646084352,646085631,US +646085632,646085887,CA +646085888,646160383,US 646160384,646164479,CA -646164480,646711807,US -646711808,646712319,CA -646712320,646734847,US -646734848,646735103,CA -646735104,654311423,US +646164480,646194175,US +646194176,646194687,CA +646194688,646195560,US +646195561,646195561,CA +646195562,646711807,US +646711808,646712063,CA +646712064,646734847,US +646734848,646735359,CA +646735360,654311423,US 654311424,654311679,CN 654311680,654311935,AU 654311936,654376959,CN @@ -6065,7 +6408,13 @@ 661651456,662700031,KR 662700032,666894335,CN 666894336,671088639,ID -671088640,675807231,US +671088640,675545087,US +675545088,675610623,NL +675610624,675635199,IE +675635200,675643391,CA +675643392,675659775,US +675659776,675667967,IE +675667968,675807231,US 675807232,675938303,CN 675938304,675954687,NL 675954688,675975167,JP @@ -6090,19 +6439,221 @@ 676773888,676790271,CA 676790272,676823039,US 676823040,676831231,IE -676831232,676840447,US +676831232,676837375,US +676837376,676838399,NL +676838400,676839423,IE +676839424,676840447,HK 676840448,676841471,SG -676841472,678428671,US +676841472,676843519,JP +676843520,676845567,AU +676845568,676847615,IN +676847616,677380127,US +677380128,677380159,IE +677380160,677380895,US +677380896,677380927,DE +677380928,677380943,IN +677380944,677380975,DE +677380976,677381375,US +677381376,677381407,AT +677381408,677381423,NL +677381424,677382015,US +677382016,677382031,NL +677382032,677382047,US +677382048,677382063,KR +677382064,677382527,US +677382528,677382543,CA +677382544,677382559,IE +677382560,677382575,US +677382576,677382591,AU +677382592,677382623,IE +677382624,677382639,CA +677382640,677382719,US +677382720,677382727,IE +677382728,677384399,US +677384400,677384431,AT +677384432,677384463,US +677384464,677384495,FI +677384496,677384671,US +677384672,677384719,NL +677384720,677385919,US +677385920,677385935,CA +677385936,677385967,US +677385968,677385983,SG +677385984,677386047,US +677386048,677386063,CA +677386064,677386095,US +677386096,677386111,BR +677386112,677386127,CA +677386128,677386159,US +677386160,677386175,BR +677386176,677386207,CA +677386208,677386399,US +677386400,677386415,CL +677386416,677386495,US +677386496,677386527,IE +677386528,677386543,AT +677386544,677386559,HK +677386560,677386575,FI +677386576,677386591,US +677386592,677386607,MY +677386608,677386623,US +677386624,677386639,JP +677386640,677386655,US +677386656,677386671,AU +677386672,677386687,DE +677386688,677386703,US +677386704,677386719,DE +677386720,677386735,US +677386736,677386751,HK +677386752,677386767,US +677386768,677386799,CA +677386800,677389231,US +677389232,677389263,DE +677389264,677389791,US +677389792,677389823,CA +677389824,677389999,US +677390000,677390063,CA +677390064,677391167,US +677391168,677391199,GB +677391200,677391759,US +677391760,677391791,GB +677391792,677392143,US +677392144,677392159,DE +677392160,677394463,US +677394464,677394527,JP +677394528,677394559,CL +677394560,677394767,US +677394768,677394799,JP +677394800,677395679,US +677395680,677395695,JP +677395696,677395871,US +677395872,677395903,IE +677395904,677396623,US +677396624,677396639,IE +677396640,677511167,US +677511168,677576703,NL +677576704,677642239,US +677642240,677646335,HK +677646336,677647359,MY +677647360,677648383,KR +677648384,677651455,SG +677651456,677652479,JP +677652480,677679103,US +677679104,677679119,AU +677679120,677681151,US +677681152,677681295,JP +677681296,677681663,US +677681664,677681919,JP +677681920,677682175,US +677682176,677682431,JP +677682432,677683199,US +677683200,677683311,CA +677683312,677685247,US +677685248,677686271,GB +677686272,677707775,US +677707776,677708799,NL +677708800,677709823,AT +677709824,677713919,NL +677713920,677714943,IE +677714944,677715967,FI +677715968,677719039,IE +677719040,677721087,DE +677721088,677722111,GB +677722112,677723135,NL +677723136,677773311,US +677773312,677774335,NL +677774336,677774479,BR +677774480,677775359,NL +677775360,677775407,BR +677775408,677781503,NL +677781504,677783551,CL +677783552,677784575,ZA +677784576,677785599,US +677785600,677806079,NL +677806080,677838847,US +677838848,677838863,NL +677838864,677838879,IE +677838880,677838895,FI +677838896,677838911,AT +677838912,677838927,NL +677838928,677838943,IE +677838944,677838959,FI +677838960,677838975,AT +677838976,677838991,NL +677838992,677839007,IE +677839008,677839023,FI +677839024,677839039,AT +677839040,677839055,NL +677839056,677839071,IE +677839072,677839087,FI +677839088,677839103,AT +677839104,677839119,NL +677839120,677839135,IE +677839136,677839151,FI +677839152,677839167,AT +677839168,677839183,NL +677839184,677839199,IE +677839200,677839215,FI +677839216,677839231,AT +677839232,677839247,NL +677839248,677839263,IE +677839264,677839279,FI +677839280,677839295,AT +677839296,677839311,NL +677839312,677839327,IE +677839328,677839343,FI +677839344,677839359,AT +677839360,677840319,US +677840320,677840639,NL +677840640,677841919,US +677841920,677841935,FI +677841936,677841951,IE +677841952,677841967,AT +677841968,677841999,FI +677842000,677842015,IE +677842016,677842031,AT +677842032,677842047,NL +677842048,677842063,FI +677842064,677842079,IE +677842080,677842095,AT +677842096,677842111,NL +677842112,677842127,FI +677842128,677842143,IE +677842144,677842159,AT +677842160,677842175,NL +677842176,677842191,FI +677842192,677842207,IE +677842208,677842223,AT +677842224,677842239,NL +677842240,677842255,FI +677842256,677842271,IE +677842272,677842287,AT +677842288,677842303,NL +677842304,677842335,FI +677842336,677842351,AT +677842352,677842367,NL +677842368,677842383,FI +677842384,677842399,IE +677842400,677842415,AT +677842416,677842431,NL +677842432,677842447,FI +677842448,677842463,IE +677842464,677842479,AT +677842480,677842495,NL +677842496,677842511,FI +677842512,677842527,IE +677842528,677842543,AT +677842544,677842559,NL +677842560,678428671,US 678428672,678436863,IE 678436864,678437887,US 678437888,678438015,IE -678438016,678438207,NL -678438208,678438271,IE +678438016,678438079,NL +678438080,678438143,US +678438144,678438207,NL +678438208,678438271,US 678438272,678438399,AU -678438400,678438591,US -678438592,678438655,NL -678438656,678438783,IN -678438784,678445055,US +678438400,678445055,US 678445056,678453247,IE 678453248,678461439,NL 678461440,678494207,US @@ -6111,9 +6662,7 @@ 678543360,678592511,US 678592512,678623193,NL 678623194,678623194,US -678623195,678625279,NL -678625280,678633471,IE -678633472,678641663,NL +678623195,678641663,NL 678641664,678649855,AU 678649856,678658047,IE 678658048,678690815,JP @@ -6156,18 +6705,18 @@ 691798016,691814399,ZM 691814400,691814655,ZW 691814656,691815167,ZM -691815168,691815423,ZW -691815424,691816191,ZM -691816192,691816703,ZW +691815168,691816703,ZW 691816704,691816959,ZM -691816960,691817215,ZW -691817216,691819007,ZM -691819008,691819263,ZW -691819264,691820799,ZM -691820800,691821311,ZW -691821312,691821567,ZM -691821568,691821823,ZW -691821824,691863551,ZM +691816960,691817727,ZW +691817728,691818751,ZM +691818752,691819007,ZW +691819008,691819775,ZM +691819776,691820031,ZW +691820032,691820287,ZM +691820288,691821311,ZW +691821312,691822079,ZM +691822080,691822335,ZW +691822336,691863551,ZM 691863552,691929087,ZA 691994624,692011007,ZM 692011008,692027391,ZA @@ -6196,11 +6745,13 @@ 692625408,692626687,KE 692626688,692626943,AO 692626944,692633599,KE -692633600,692635903,MU +692633600,692634623,MU +692634624,692634879,KE +692634880,692635903,MU 692635904,692636159,KE -692636160,692639743,MU -692639744,692639999,KE -692640000,692641791,MU +692636160,692641023,MU +692641024,692641279,KE +692641280,692641791,MU 692641792,692649983,GA 692649984,692658175,NG 692658176,692666367,ZA @@ -6554,7 +7105,9 @@ 700437504,700438527,MU 700438528,700439551,BW 700439552,700440575,GN -700440576,700442247,MU +700440576,700440831,MU +700440832,700441343,KE +700441344,700442247,MU 700442248,700442251,KE 700442252,700442623,MU 700442624,700444671,ZW @@ -6571,7 +7124,9 @@ 700595200,700596223,CD 700596224,700598783,ZA 700598784,700599039,CG -700599040,700710911,ZA +700599040,700599551,ZA +700599552,700599807,US +700599808,700710911,ZA 700710912,700776447,EG 700776448,700841983,RW 700841984,700846079,MU @@ -6582,8 +7137,8 @@ 700866560,700866815,NG 700866816,700867327,MU 700867328,700867583,NG -700867584,700893439,MU -700893440,700893951,NG +700867584,700893695,MU +700893696,700893951,NG 700893952,700895231,MU 700895232,700899327,NG 700899328,700907519,MU @@ -6601,7 +7156,9 @@ 701190144,701202431,NG 701202432,701210623,NE 701210624,701214719,ZA -701214720,701218815,LS +701214720,701215487,LS +701215488,701215743,ZA +701215744,701218815,LS 701218816,701222911,ML 701222912,701227007,KE 701227008,701231103,BF @@ -6618,9 +7175,7 @@ 701308928,701317119,AO 701317120,701325311,CM 701325312,701333503,EG -701333504,701338111,NA -701338112,701338367,ZM -701338368,701341695,NA +701333504,701341695,NA 701341696,701349887,NG 701349888,701358079,MA 701358080,701366271,SL @@ -6743,7 +7298,9 @@ 702341120,702342259,MU 702342260,702342263,KE 702342264,702344199,MU -702344200,702349311,KE +702344200,702344971,KE +702344972,702345215,MU +702345216,702349311,KE 702349312,702353407,ZA 702353408,702357503,DZ 702357504,702365695,TZ @@ -6886,7 +7443,9 @@ 703766528,703770623,ZA 703770624,703774719,BJ 703774720,703791103,ZA -703791104,703856639,CD +703791104,703791615,CD +703791616,703791871,ZA +703791872,703856639,CD 703856640,703922175,CM 703922176,704118783,ZA 704118784,704380927,MA @@ -6989,7 +7548,7 @@ 736131072,736132095,NZ 736132096,736133119,LK 736133120,736136191,IN -736136192,736138239,CN +736137216,736138239,CN 736138240,736139263,HK 736139264,736140287,SG 736140288,736141311,IN @@ -7078,7 +7637,6 @@ 736289920,736290047,JP 736290048,736290303,AU 736290304,736290815,US -736290816,736291839,TW 736291840,736300031,CN 736300032,736301055,HK 736301056,736303103,IN @@ -7148,10 +7706,13 @@ 736432128,736433151,CN 736433152,736434175,ID 736434176,736435199,IN +736435200,736436223,HK 736436224,736437247,JP +736437248,736438271,HK 736438272,736439295,CN 736439296,736440319,TH 736440320,736441343,CN +736441344,736442367,HK 736442368,736443391,CN 736443392,736445439,AU 736446464,736447487,IN @@ -7187,7 +7748,11 @@ 736494592,736495103,ID 736495104,736495359,NR 736495360,736495615,ID -736495616,736498687,HK +736495616,736495871,HK +736495872,736496127,KR +736496128,736496383,JP +736496384,736496639,PH +736496640,736498687,HK 736498688,736499711,CN 736499712,736500479,SG 736500480,736500735,TH @@ -7218,7 +7783,6 @@ 736532480,736533503,ID 736533504,736535551,IN 736535552,736536575,HK -736536576,736537599,CN 736537600,736538623,IN 736538624,736539647,AU 736539648,736540671,SG @@ -7285,7 +7849,10 @@ 737113088,737115135,CN 737115136,737118207,IN 737118208,737119231,AU -737119232,737120255,NL +737119232,737119487,NL +737119488,737119743,FR +737119744,737119999,NL +737120000,737120255,FR 737120256,737121279,IN 737121280,737122303,VN 737122304,737123327,IN @@ -7300,7 +7867,8 @@ 737142784,737143039,HK 737143040,737143807,MY 737143808,737146879,IN -737146880,737147903,NZ +737146880,737147647,US +737147648,737147903,NZ 737147904,737148927,MY 737148928,737149951,CN 737149952,737151999,IN @@ -7362,7 +7930,7 @@ 737257472,737262591,CN 737262592,737263615,AU 737263616,737264639,IN -737264640,737265663,CN +737264640,737265663,HK 737265664,737266687,AU 737266688,737267711,HK 737267712,737276927,CN @@ -7405,8 +7973,12 @@ 737350912,737351679,NZ 737351680,737352703,CN 737352704,737354751,HK -737354752,737355775,IN -737355776,737359871,HK +737354752,737355263,IN +737355264,737355519,PK +737355520,737355775,IN +737355776,737356287,HK +737356288,737356799,GB +737356800,737359871,HK 737359872,737361919,NZ 737361920,737364991,HK 737364992,737368063,IN @@ -7485,7 +8057,9 @@ 737514496,737515519,IN 737515520,737516543,AU 737516544,737517567,IN -737517568,737520639,AU +737517568,737519871,AU +737519872,737520127,SG +737520128,737520639,AU 737520640,737521663,NZ 737521664,737522687,AU 737522688,737525759,ID @@ -7498,6 +8072,7 @@ 737529856,737530879,IN 737530880,737531903,NC 737531904,737532927,KH +737532928,737533951,MY 737533952,737534975,AU 737534976,737535999,SG 737536000,737537023,BD @@ -7669,7 +8244,7 @@ 737846272,737847295,IN 737847296,737850367,CN 737850368,737851391,IN -737851392,737852415,HK +737851392,737853439,HK 737853440,737854463,SG 737854464,737855487,JP 737855488,737856511,CN @@ -7720,13 +8295,11 @@ 737911808,737912703,SG 737912704,737912831,MY 737912832,737915903,IN -737915904,737916927,TW 737916928,737917951,JP 737917952,737918975,IN 737918976,737919999,CN 737920000,737921023,HK 737921024,737922047,AU -737922048,737923071,KR 737923072,737924095,MY 737924096,737927167,IN 737927168,737929215,HK @@ -7888,11 +8461,15 @@ 755105792,755179519,CA 755179520,755236863,US 756023296,757071871,US -757071872,757088255,NL +757071872,757073919,NL +757073920,757073920,JP +757073921,757088255,NL 757088256,757090303,US 757090304,757104639,NL 757104640,757106687,US -757106688,757121535,NL +757106688,757118796,NL +757118797,757118797,GB +757118798,757121535,NL 757121536,757121791,US 757121792,757122047,NL 757122048,757122303,US @@ -8318,7 +8895,8 @@ 762397696,762398719,HK 762398720,762399743,CN 762399744,762400767,IN -762400768,762401791,HK +762400768,762401023,HK +762401024,762401791,US 762401792,762402815,TH 762402816,762403839,IN 762403840,762404863,AU @@ -8326,12 +8904,11 @@ 762407936,762408959,CN 762408960,762409983,HK 762409984,762411007,JP -762411008,762411263,IN -762411264,762411519,HK -762411520,762412031,IN +762411008,762411519,HK +762411520,762411775,IN +762411776,762412031,HK 762412032,762413055,PK 762413056,762414079,HK -762414080,762415103,JP 762415104,762416127,IN 762416128,762417151,HK 762417152,762419199,CN @@ -8373,10 +8950,11 @@ 762470400,762471423,CN 762471424,762472447,MY 762472448,762473471,CN -762473472,762475519,JP +762474496,762475519,JP 762475520,762475775,AU 762475776,762476031,SG -762476032,762476543,ID +762476032,762476287,ID +762476288,762476543,SG 762476544,762478591,PK 762478592,762479615,KR 762479616,762480639,PK @@ -8647,7 +9225,7 @@ 762900480,762901503,CN 762901504,762902527,ID 762902528,762909695,IN -762909696,762910719,CN +762909696,762910719,HK 762910720,762911743,VN 762911744,762912767,IN 762912768,762913791,HK @@ -8778,9 +9356,9 @@ 763179008,763180031,HK 763180032,763182079,CN 763182080,763183103,IN -763183104,763184127,HK +763183104,763183359,JP +763183360,763184127,HK 763184128,763185151,IN -763185152,763186175,HK 763186176,763194367,CN 763194368,763196415,HK 763196416,763197439,IN @@ -8802,7 +9380,8 @@ 763226112,763227135,KR 763227136,763228159,VN 763228160,763229183,JP -763229184,763229695,NZ +763229184,763229439,NZ +763229440,763229695,AU 763229696,763229951,IN 763229952,763230207,AU 763230208,763231231,PH @@ -8818,7 +9397,7 @@ 763246592,763247615,ID 763247616,763248639,SG 763248640,763250687,IN -763250688,763251711,AU +763250688,763251711,US 763251712,763252735,HK 763252736,763253759,ID 763253760,763254783,JP @@ -8903,7 +9482,7 @@ 772014080,772145151,DE 772145152,772210687,ES 772210688,772276223,IE -772276224,772284415,NL +772276224,772284415,GB 772284416,772284927,RU 772284928,772285183,UA 772285184,772285439,UZ @@ -8913,7 +9492,11 @@ 772286720,772286975,LB 772286976,772296703,RU 772296704,772300799,UA -772300800,772341759,RU +772300800,772339967,RU +772339968,772340223,NL +772340224,772341247,RU +772341248,772341503,US +772341504,772341759,RU 772341760,772407295,NO 772407296,772472831,BG 772472832,772538367,MT @@ -8979,9 +9562,7 @@ 772917248,772919295,RU 772919296,772923391,GB 772923392,772925439,AT -772925440,772926975,GB -772926976,772927231,ZW -772927232,772927487,GB +772925440,772927487,GB 772927488,772929535,UA 772929536,772931583,RU 772931584,772933631,UA @@ -9040,13 +9621,9 @@ 773048320,773050367,LV 773050368,773052415,IE 773052416,773054463,NL -773054464,773055231,AL -773055232,773055487,RS -773055488,773055871,AL +773054464,773055871,AL 773055872,773055999,RS -773056000,773056007,AL -773056008,773056009,RS -773056010,773056511,AL +773056000,773056511,AL 773056512,773058559,IT 773058560,773060607,BE 773060608,773062655,DK @@ -9087,9 +9664,7 @@ 773166464,773166591,PL 773166592,773167199,US 773167200,773167207,NL -773167208,773167359,US -773167360,773167615,NL -773167616,773167655,US +773167208,773167655,US 773167656,773167663,NL 773167664,773168127,US 773168128,773168415,NL @@ -9110,7 +9685,7 @@ 773211136,773211391,FR 773211392,773211647,US 773211648,773211903,NL -773211904,773212159,US +773211904,773212159,SG 773212160,773212671,NL 773212672,773213183,GB 773213184,773214207,US @@ -9260,18 +9835,16 @@ 773828608,773830655,HU 773830656,773832703,NO 773832704,773834751,FR -773834752,773835007,GB -773835008,773835263,IM -773835264,773835775,GB -773835776,773836031,IM -773836032,773836543,GB -773836544,773836799,IM +773834752,773835519,GB +773835520,773836031,IM +773836032,773836799,GB 773836800,773838847,FR 773838848,773840895,DE 773840896,773842943,GB 773844992,773845759,GB 773845760,773846015,JE -773846016,773846527,GG +773846016,773846271,GB +773846272,773846527,GG 773846528,773847039,GB 773847040,773849087,IT 773849088,773857279,IR @@ -9288,7 +9861,9 @@ 773935353,773935353,US 773935354,773935728,FR 773935729,773935729,GB -773935730,773937663,FR +773935730,773936145,FR +773936146,773936146,US +773936147,773937663,FR 773937664,773937664,DE 773937665,773937673,FR 773937674,773937674,IE @@ -9301,9 +9876,7 @@ 773963776,773971967,ME 773971968,773980159,UA 773980160,773988351,GB -773988352,773997823,ES -773997824,773998079,NL -773998080,774000639,ES +773988352,774000639,ES 774000640,774000823,NL 774000824,774000824,GB 774000825,774000895,NL @@ -9559,8 +10132,8 @@ 778304306,778304306,SI 778304307,778305535,AL 778305536,778371071,IR -778371072,778399743,GB -778399744,778436607,DE +778371072,778395647,GB +778395648,778436607,DE 778436608,778461183,RO 778461184,778461439,TR 778461440,778462207,EE @@ -9595,7 +10168,9 @@ 778567680,778633215,TR 778633216,778640127,FR 778640128,778640383,GB -778640384,778666259,FR +778640384,778657399,FR +778657400,778657403,PT +778657404,778666259,FR 778666260,778666263,ES 778666264,778666479,FR 778666480,778666495,DE @@ -9741,7 +10316,9 @@ 779616256,779747327,IL 779747328,779878399,SI 779878400,780009471,AT -780009472,780125183,CH +780009472,780016127,CH +780016128,780016383,DE +780016384,780125183,CH 780125184,780125695,DE 780125696,780140543,CH 780140544,780206079,DE @@ -9757,9 +10334,7 @@ 780779520,780795903,SG 780795904,780861439,RU 780861440,780926975,HU -780926976,780949503,CH -780949504,780949759,DE -780949760,780992511,CH +780926976,780992511,CH 780992512,781058047,IT 781058048,781123583,DE 781123584,781189119,IR @@ -9801,7 +10376,9 @@ 781656064,781658111,RO 781658112,781662207,UA 781662208,781664255,SK -781664256,781666303,UA +781664256,781664511,UA +781664512,781664767,RU +781664768,781666303,UA 781666304,781668351,PL 781668352,781670399,UA 781670400,781672447,RU @@ -9810,7 +10387,9 @@ 781676544,781678591,PL 781678592,781682687,RS 781682688,781684735,PL -781684736,781688831,RU +781684736,781685503,RU +781685504,781685759,UA +781685760,781688831,RU 781688832,781690879,RO 781690880,781692927,RU 781692928,781694975,UA @@ -10082,11 +10661,9 @@ 786567168,786569215,CZ 786569216,786571263,NO 786571264,786575359,ES -786575360,786575871,GB -786575872,786576098,NO +786575360,786576098,GB 786576099,786576099,SE -786576100,786576127,NO -786576128,786577407,GB +786576100,786577407,GB 786577408,786579455,NL 786579456,786581503,RU 786581504,786583551,GB @@ -10282,8 +10859,9 @@ 787189760,787191807,CH 787191808,787192063,GB 787192064,787192319,FR -787192384,787192447,DE +787192320,787192575,DE 787192576,787192831,SE +787192832,787193087,AE 787193088,787193343,FI 787193344,787193599,DE 787193856,787195903,RU @@ -10479,9 +11057,11 @@ 788457472,788459519,IT 788459520,788461567,RU 788461568,788462335,JE -788462336,788462591,GB -788462592,788463103,JE -788463104,788465663,GB +788462336,788462847,GB +788462848,788463103,JE +788463104,788463359,GB +788463360,788463615,JE +788463616,788465663,GB 788465664,788467711,CZ 788467712,788469759,NO 788469760,788471807,NL @@ -10520,15 +11100,23 @@ 788523008,788525055,KZ 788525056,788527103,IT 788527104,788529151,GB -788529152,789577727,CA +788529152,789053439,CA +789053440,789184511,SG +789184512,789250047,CA +789250048,789315583,SG +789315584,789512191,CA +789512192,789577727,SG 789577728,790102015,US -790102016,790626303,CA +790102016,790429695,CA +790429696,790626303,SG 790626304,791937023,US 791937024,792002559,CA 792002560,792068095,IT -792068096,792094719,CA -792094720,792094975,US -792094976,792330239,CA +792068096,792070911,CA +792070912,792071167,US +792071168,792084479,CA +792084480,792084735,US +792084736,792330239,CA 792330240,792723455,ES 792723456,793247743,DE 793247744,793313279,NZ @@ -10539,7 +11127,11 @@ 794558464,796917759,CN 796917760,797873663,CA 797873664,797873919,US -797873920,805306367,CA +797873920,802160639,CA +802160640,803209215,US +803209216,804716543,CA +804716544,804782079,SG +804782080,805306367,CA 805306368,822083583,US 822083584,822084607,ID 822084608,822085631,BD @@ -10610,7 +11202,8 @@ 831519744,831520767,IN 831520768,832045055,PH 832045056,832307199,CN -832307200,832311295,JP +832307200,832308223,PK +832308224,832311295,JP 832311296,832312319,AU 832312320,832313343,ID 832313344,832315391,AU @@ -10673,8 +11266,10 @@ 839112192,839112447,CA 839112448,839340031,US 839340032,839341055,ES -839341056,839342079,US -839342080,839343103,DE +839341056,839341311,US +839341312,839341567,DE +839341568,839341823,US +839341824,839343103,DE 839343104,839344127,NL 839344128,839348223,US 839348224,839348479,DE @@ -10719,7 +11314,9 @@ 843055104,843644927,CA 843644928,844890111,US 844890112,844988415,CA -844988416,845283327,US +844988416,845222689,US +845222690,845222690,HK +845222691,845283327,US 845283328,845545471,CA 845545472,846442495,US 846442496,846446591,CA @@ -10729,16 +11326,138 @@ 846626816,846627071,CN 846627072,846644755,US 846644756,846644756,PT -846644757,848915455,US -848915456,848916479,CA -848916480,850506751,US -850506752,850507263,CA -850507264,855638015,US -855638016,858230746,GB +846644757,850506751,US +850506752,850507007,CA +850507008,855638015,US +855638016,855900159,GB +855900160,856031231,DE +856031232,857997567,GB +857997568,857998335,SA +857998336,857998847,GB +857998848,857999103,SA +857999104,857999743,GB +857999744,857999871,SA +857999872,858001919,GB +858001920,858002175,SA +858002176,858003199,GB +858003200,858003455,SA +858003456,858003711,GB +858003712,858004223,SA +858004224,858004991,GB +858004992,858005503,SA +858005504,858005759,GB +858005760,858006015,SA +858006016,858006271,GB +858006272,858006527,SA +858006528,858006783,GB +858006784,858007039,SA +858007040,858008063,GB +858008064,858008319,SA +858008320,858008575,GB +858008576,858009087,SA +858009088,858009855,GB +858009856,858010111,SA +858010112,858010623,GB +858010624,858011135,SA +858011136,858011647,GB +858011648,858012415,SA +858012416,858013439,GB +858013440,858013695,SA +858013696,858014719,GB +858014720,858014975,SA +858014976,858020351,GB +858020352,858020863,SA +858020864,858021375,GB +858021376,858021631,SA +858021632,858022911,GB +858022912,858023423,SA +858023424,858025471,GB +858025472,858025727,SA +858025728,858028287,GB +858028288,858028543,SA +858028544,858033663,GB +858033664,858033919,SA +858033920,858035199,GB +858035200,858035455,SA +858035456,858035967,GB +858035968,858036223,SA +858036224,858043391,GB +858043392,858043903,SA +858043904,858044927,GB +858044928,858045183,SA +858045184,858194431,GB +858194432,858195199,SA +858195200,858195711,GB +858195712,858195967,SA +858195968,858196223,GB +858196224,858196735,SA +858196736,858197247,GB +858197248,858198271,SA +858198272,858199551,GB +858199552,858199807,SA +858199808,858201855,GB +858201856,858202111,SA +858202112,858202623,GB +858202624,858202879,SA +858202880,858204671,GB +858204672,858204927,SA +858204928,858206207,GB +858206208,858206463,SA +858206464,858207487,GB +858207488,858207743,SA +858207744,858208255,GB +858208256,858208767,SA +858208768,858209279,GB +858209280,858209535,SA +858209536,858209791,GB +858209792,858210559,SA +858210560,858210815,GB +858210816,858211071,SA +858211072,858215295,GB +858215296,858215679,SA +858215680,858216703,GB +858216704,858216959,SA +858216960,858218239,GB +858218240,858218495,SA +858218496,858219519,GB +858219520,858219775,SA +858219776,858221311,GB +858221312,858221567,SA +858221568,858222847,GB +858222848,858223103,SA +858223104,858223615,GB +858223616,858223871,SA +858223872,858225151,GB +858225152,858225919,SA +858225920,858227711,GB +858227712,858227967,SA +858227968,858228479,GB +858228480,858228735,SA +858228736,858229503,GB +858229504,858229759,SA +858229760,858230271,GB +858230272,858230527,SA +858230528,858230746,GB 858230747,858230747,SA -858230748,860905167,GB +858230748,858230783,GB +858230784,858231039,SA +858231040,858231807,GB +858231808,858232063,SA +858232064,858232831,GB +858232832,858233343,SA +858233344,858233855,GB +858233856,858234367,SA +858234368,858238719,GB +858238720,858238975,SA +858238976,860905167,GB 860905168,860905171,FR -860905172,867041279,GB +860905172,866853119,GB +866853120,866853375,IE +866853376,866855423,GB +866855424,866855679,IE +866855680,866858495,GB +866858496,866859007,IE +866859008,867041279,GB 867041280,867172351,NO 867172352,867368959,GB 867368960,867401727,IT @@ -10752,11 +11471,17 @@ 871038976,871104511,SA 871104512,872153087,GB 872153088,872284159,SA -872284160,872288871,FR +872284160,872286871,FR +872286872,872286875,CZ +872286876,872288871,FR 872288872,872288875,DE 872288876,872290111,FR 872290112,872290143,ES -872290144,872300031,FR +872290144,872291151,FR +872291152,872291167,FI +872291168,872297215,FR +872297216,872297231,GB +872297232,872300031,FR 872300032,872300063,ES 872300064,872300649,FR 872300650,872300650,PT @@ -10783,7 +11508,9 @@ 872344604,872344607,GB 872344608,872346978,FR 872346979,872346979,DE -872346980,872357423,FR +872346980,872347063,FR +872347064,872347067,PT +872347068,872357423,FR 872357424,872357427,PT 872357428,872357429,FR 872357430,872357433,PT @@ -10791,15 +11518,21 @@ 872364864,872364927,NL 872364928,872374608,FR 872374609,872374618,ES -872374619,872377297,FR +872374619,872375295,FR +872375296,872375423,NL +872375424,872377297,FR 872377298,872377299,ES -872377300,872380607,FR +872377300,872380247,FR +872380248,872380248,ES +872380249,872380607,FR 872380608,872380671,ES 872380672,872384095,FR 872384096,872384127,ES 872384128,872388415,FR 872388416,872388447,ES -872388448,872415231,FR +872388448,872403606,FR +872403607,872403607,PT +872403608,872415231,FR 872415232,873463807,US 873463808,873646466,IE 873646467,873646467,US @@ -10835,13 +11568,16 @@ 878460928,878461951,BR 878461952,878462975,DE 878462976,878463999,BR -878464000,878576895,US +878464000,878512127,US +878512128,878513151,SG +878513152,878576895,US 878576896,878577151,IE -878577152,878577663,KR -878577664,878577919,BR -878577920,878578175,JP -878578176,878578687,US -878578688,878578943,SG +878577152,878577407,KR +878577408,878577663,BR +878577664,878577919,JP +878577920,878578431,US +878578432,878578687,SG +878578688,878578943,US 878578944,878579199,AU 878579200,878648831,US 878648832,878649343,JP @@ -10876,7 +11612,27 @@ 878706512,878706559,US 878706560,878706575,DE 878706576,878706591,CN -878706592,884998143,US +878706592,883097599,US +883097600,883122175,SG +883122176,883130367,US +883130368,883146751,SG +883146752,883163135,US +883163136,883228671,IE +883228672,883294207,US +883294208,883359743,NL +883359744,883490815,US +883490816,883556351,IE +883556352,883687423,US +883687424,883703807,IN +883703808,883818495,US +883818496,883884031,NL +883884032,883916799,HK +883916800,883924991,JP +883924992,884080639,US +884080640,884097023,NL +884097024,884113407,US +884113408,884129791,IE +884129792,884998143,US 884998144,885129215,JP 885129216,885260287,US 885260288,885522431,JP @@ -11175,7 +11931,9 @@ 962134016,962138111,AE 962138112,962203647,BE 962203648,962207999,AT -962208000,962208255,BE +962208000,962208195,BE +962208196,962208196,AT +962208197,962208255,BE 962208256,962211839,AT 962211840,962215935,BG 962215936,962217983,HR @@ -11315,8 +12073,13 @@ 982624256,982626303,ID 982626304,982628351,JP 982628352,982630399,BD -982630400,982646783,SG -982646784,982671359,JP +982630400,982639103,JP +982639104,982639615,SG +982639616,982639871,JP +982639872,982641151,SG +982641152,982641663,JP +982641664,982642687,SG +982642688,982671359,JP 982671360,982679551,IN 982679552,982695935,SG 982695936,982712319,KR @@ -11360,7 +12123,9 @@ 996671488,996802559,TW 996802560,996868095,JP 996868096,997195775,CN -997195776,998244351,TW +997195776,997765631,TW +997765632,997765887,JP +997765888,998244351,TW 998244352,999292927,JP 999292928,999423999,IN 999424000,999555071,JP @@ -11372,14 +12137,24 @@ 999817216,999821311,BD 999821312,999827455,CN 999827456,999828479,IN +999828480,999828735,HK +999828736,999828991,PH +999828992,999829503,MY +999829504,999830527,HK +999830528,999832575,IN +999832576,999833599,BD 999833600,999837695,CN 999837696,999838719,IN 999839744,999845887,BD 999845888,999847935,CN 999847936,999848959,IN -999848960,999849983,HK +999848960,999849983,US 999849984,999866367,KR -999866368,999882751,HK +999866368,999873791,HK +999873792,999873941,AU +999873942,999873943,HK +999873944,999874047,AU +999874048,999882751,HK 999882752,999883775,IN 999883776,999884799,CN 999884800,999885823,AU @@ -11504,9 +12279,7 @@ 1023967232,1023975423,IN 1023975424,1023979519,CN 1023979520,1023983615,AU -1023983616,1023996927,SG -1023996928,1023997183,AU -1023997184,1023999999,SG +1023983616,1023999999,SG 1024000000,1024032767,PH 1024032768,1024065535,AU 1024065536,1024131071,HK @@ -11530,17 +12303,17 @@ 1024363520,1024363775,AU 1024363776,1024364063,JP 1024364064,1024364079,AU -1024364080,1024365727,JP -1024365728,1024365759,SG -1024365760,1024371199,JP +1024364080,1024365567,JP +1024365568,1024365823,SG +1024365824,1024371199,JP 1024371200,1024371455,PH 1024371456,1024372543,JP 1024372544,1024372639,HK 1024372640,1024373263,JP 1024373264,1024373279,HK -1024373280,1024375551,JP -1024375552,1024375807,AU -1024375808,1024376831,JP +1024373280,1024375295,JP +1024375296,1024375551,AU +1024375552,1024376831,JP 1024376832,1024378879,PH 1024378880,1024380927,IN 1024380928,1024381951,KR @@ -11595,19 +12368,38 @@ 1026416640,1026420735,CN 1026420736,1026422783,JP 1026422784,1026424831,AU -1026424832,1026490367,JP -1026490368,1026492415,TH -1026492416,1026493439,SG -1026493440,1026498559,TH -1026498560,1026501631,SG -1026501632,1026505727,TH -1026505728,1026506751,SG -1026506752,1026507775,TH -1026507776,1026508799,SG +1026424832,1026490623,JP +1026490624,1026491135,SG +1026491136,1026491903,JP +1026491904,1026494207,SG +1026494208,1026494463,JP +1026494464,1026494719,SG +1026494720,1026494975,JP +1026494976,1026495743,SG +1026495744,1026496255,JP +1026496256,1026496511,SG +1026496512,1026496767,JP +1026496768,1026497023,SG +1026497024,1026497279,TH +1026497280,1026497535,JP +1026497536,1026497791,SG +1026497792,1026498047,JP +1026498048,1026501631,SG +1026501632,1026502399,JP +1026502400,1026502911,SG +1026502912,1026503679,JP +1026503680,1026503935,SG +1026503936,1026504959,JP +1026504960,1026506751,SG +1026506752,1026507519,JP +1026507520,1026508799,SG 1026508800,1026510847,JP 1026510848,1026512895,SG 1026512896,1026514943,JP -1026514944,1026516991,TH +1026514944,1026515455,SG +1026515456,1026515967,JP +1026515968,1026516479,SG +1026516480,1026516991,JP 1026516992,1026518015,SG 1026518016,1026519039,JP 1026519040,1026523135,SG @@ -11687,7 +12479,9 @@ 1040983552,1040983807,FO 1040983808,1040990207,DK 1040990208,1040998399,CY -1040998400,1041006591,EG +1040998400,1041003809,EG +1041003810,1041003810,KE +1041003811,1041006591,EG 1041006592,1041039359,CH 1041039360,1041072127,SE 1041072128,1041080319,GB @@ -11703,9 +12497,7 @@ 1041338880,1041339135,GB 1041339136,1041367039,IE 1041367040,1041498111,IT -1041498112,1041523967,SE -1041523968,1041524223,DK -1041524224,1041563647,SE +1041498112,1041563647,SE 1041563648,1041596415,PL 1041596416,1041629183,NL 1041629184,1041694719,ES @@ -11756,8 +12548,8 @@ 1042874368,1042875135,NL 1042875136,1042875391,FR 1042875392,1042879999,NL -1042880000,1042880007,GB -1042880008,1042881023,NL +1042880000,1042880255,GB +1042880256,1042881023,NL 1042881024,1042881535,DE 1042881536,1042939903,NL 1042939904,1043070975,ES @@ -11818,7 +12610,9 @@ 1044226048,1044234239,OM 1044234240,1044250623,RE 1044283392,1044316159,FR -1044316160,1044332543,NO +1044316160,1044318975,NO +1044318976,1044319231,GB +1044319232,1044332543,NO 1044332544,1044348927,RU 1044348928,1044365311,LV 1044365312,1044381695,SE @@ -11889,9 +12683,7 @@ 1044931232,1044931239,BE 1044931240,1044933499,GB 1044933500,1044933503,BE -1044933504,1044933887,GB -1044933888,1044934143,BE -1044934144,1044935439,GB +1044933504,1044935439,GB 1044935440,1044935455,BE 1044935456,1044935663,GB 1044935664,1044935671,BE @@ -12020,12 +12812,10 @@ 1046487291,1046488319,GB 1046488320,1046488575,DE 1046488576,1046489087,GB -1046489088,1046489218,DE -1046489219,1046489219,GB -1046489220,1046489311,DE +1046489088,1046489119,DE +1046489120,1046489311,GB 1046489312,1046489327,ES -1046489328,1046489343,DE -1046489344,1046489391,GB +1046489328,1046489391,GB 1046489392,1046489407,IT 1046489408,1046489471,GB 1046489472,1046489487,ES @@ -12097,21 +12887,21 @@ 1046529024,1046530047,DE 1046530048,1046530973,GB 1046530974,1046530974,DE -1046530975,1046531071,GB -1046531072,1046531327,DE -1046531328,1046531839,GB +1046530975,1046531839,GB 1046531840,1046532095,DE 1046532096,1046533375,GB 1046533376,1046533383,DE 1046533384,1046533537,GB 1046533538,1046533538,DE -1046533539,1046533887,GB +1046533539,1046533615,GB +1046533616,1046533631,DE +1046533632,1046533887,GB 1046533888,1046534143,DE 1046534144,1046535295,GB 1046535296,1046535311,DE -1046535312,1046535439,GB -1046535440,1046535447,DE -1046535448,1046537023,GB +1046535312,1046535423,GB +1046535424,1046535679,DE +1046535680,1046537023,GB 1046537024,1046537039,DE 1046537040,1046543209,GB 1046543210,1046543210,DE @@ -12181,7 +12971,9 @@ 1047461888,1047494655,DE 1047494656,1047527423,PL 1047527424,1047535615,BE -1047535616,1047551999,DE +1047535616,1047536895,DE +1047536896,1047537151,SE +1047537152,1047551999,DE 1047552000,1047560191,RU 1047560192,1047568383,DE 1047568384,1047576575,NL @@ -12194,7 +12986,12 @@ 1047642112,1047658495,DE 1047658496,1047724031,EG 1047728128,1047732223,SE +1047735770,1047735770,DE 1047740544,1047740671,DE +1047758911,1047758911,CZ +1047759119,1047759119,AT +1047759125,1047759125,AT +1047759834,1047759834,CZ 1047781856,1047781871,DE 1047782690,1047782690,GB 1047787520,1047787775,ES @@ -12239,13 +13036,12 @@ 1048246272,1048248319,NO 1048248320,1048313855,IT 1048313856,1048510463,GB -1048510464,1048536319,SE -1048536320,1048536575,FI -1048536576,1048575999,SE +1048510464,1048575999,SE 1048576000,1048584191,DE 1048584192,1048592383,IL 1048592384,1048600575,IT -1048600576,1048602111,UA +1048600576,1048601599,UA +1048601600,1048602111,RU 1048602112,1048602623,PL 1048602624,1048603135,RU 1048603136,1048603391,UA @@ -12276,9 +13072,7 @@ 1049006080,1049006335,DE 1049008128,1049009151,DE 1049016320,1049018367,DE -1049018624,1049020671,DE -1049020672,1049020927,GB -1049020928,1049022463,DE +1049018624,1049022463,DE 1049026816,1049029375,DE 1049030656,1049031679,DE 1049031744,1049031871,DE @@ -12299,7 +13093,11 @@ 1049378816,1049395199,EG 1049395200,1049411583,NL 1049411584,1049419775,GB -1049419776,1049427967,RU +1049419776,1049423615,RU +1049423616,1049423856,UA +1049423857,1049423857,RU +1049423858,1049423871,UA +1049423872,1049427967,RU 1049427968,1049436159,CZ 1049436160,1049444351,DE 1049444352,1049460735,RU @@ -12399,7 +13197,9 @@ 1051922432,1051924479,CH 1051924480,1051948031,AT 1051948032,1051949055,CH -1051949056,1051951103,AT +1051949056,1051949823,AT +1051949824,1051950079,NL +1051950080,1051951103,AT 1051951104,1051983871,NL 1051990016,1051991039,DE 1052001280,1052002303,DE @@ -12484,9 +13284,7 @@ 1052488704,1052489727,GB 1052494336,1052494591,NL 1052498432,1052498463,RO -1052508160,1052596479,GB -1052596480,1052596735,NL -1052596736,1052704767,GB +1052508160,1052704767,GB 1052704768,1052712959,NL 1052712960,1052770303,GB 1052770304,1052778495,CH @@ -12519,7 +13317,6 @@ 1053301056,1053301071,FR 1053312872,1053312887,DK 1053312912,1053312927,DK -1053313280,1053313535,GB 1053318912,1053318943,FI 1053320224,1053320239,DE 1053325824,1053326335,DE @@ -12532,7 +13329,6 @@ 1053339904,1053340159,AT 1053349376,1053349631,NL 1053349952,1053349967,IE -1053352960,1053353215,IE 1053353408,1053353423,GB 1053353984,1053354239,IL 1053354912,1053355007,IL @@ -12684,15 +13480,13 @@ 1054351360,1054359551,UA 1054359552,1054367743,RO 1054367744,1054375935,FI -1054375936,1054381567,GB -1054381568,1054381571,CA +1054375936,1054381571,GB 1054381572,1054381572,SG -1054381573,1054381587,CA +1054381573,1054381587,GB 1054381588,1054381588,HK -1054381589,1054381619,CA +1054381589,1054381619,GB 1054381620,1054381620,US -1054381621,1054381823,CA -1054381824,1054384127,GB +1054381621,1054384127,GB 1054384128,1054400511,DE 1054400512,1054408703,GB 1054408704,1054416895,FR @@ -12790,7 +13584,9 @@ 1056243712,1056251903,CH 1056251904,1056260095,RU 1056260096,1056276479,CZ -1056276480,1056374783,DE +1056276480,1056303615,DE +1056303616,1056303871,FR +1056303872,1056374783,DE 1056374784,1056440319,SE 1056440320,1056473087,TR 1056473088,1056505855,FI @@ -12835,11 +13631,17 @@ 1062597376,1062597631,PR 1062597632,1062871551,US 1062871552,1062872063,PR -1062872064,1063052351,US -1063052352,1063052367,CA -1063052368,1063057432,US +1062872064,1063053567,US +1063053568,1063053647,CA +1063053648,1063053663,US +1063053664,1063053743,CA +1063053744,1063053759,US +1063053760,1063053823,CA +1063053824,1063057432,US 1063057433,1063057433,CA -1063057434,1063390207,US +1063057434,1063361279,US +1063361280,1063361535,SE +1063361536,1063390207,US 1063390208,1063390463,PR 1063390464,1063568895,US 1063568896,1063569151,TZ @@ -12871,9 +13673,7 @@ 1064221952,1064222207,MX 1064222208,1064445183,US 1064445184,1064445439,PK -1064445440,1065372927,US -1065372928,1065373183,PR -1065373184,1065519247,US +1064445440,1065519247,US 1065519248,1065519263,IN 1065519264,1065519303,US 1065519304,1065519311,IN @@ -12898,14 +13698,15 @@ 1065908224,1066254975,US 1066254976,1066255103,GB 1066255104,1066311679,US -1066311680,1066315775,CA +1066311680,1066311954,CA +1066311955,1066311955,US +1066311956,1066315775,CA 1066315776,1066352639,US 1066352640,1066355711,JM 1066355712,1066355967,BB 1066355968,1066356479,JM 1066356480,1066356735,VG -1066356736,1066358271,JM -1066358272,1066358495,VG +1066356736,1066358495,JM 1066358496,1066358527,AG 1066358528,1066369023,JM 1066369024,1066830303,US @@ -12916,8 +13717,8 @@ 1066831184,1066831191,JP 1066831192,1066831335,US 1066831336,1066831343,JP -1066831344,1067238143,US -1067238144,1067238399,JP +1066831344,1067237887,US +1067237888,1067238399,JP 1067238400,1067294719,US 1067294720,1067294975,CA 1067294976,1067481855,US @@ -12970,9 +13771,7 @@ 1068481024,1068481535,PR 1068481536,1068491263,US 1068491264,1068491519,HN -1068491520,1070701055,US -1070701056,1070701311,DO -1070701312,1070729471,US +1068491520,1070729471,US 1070729472,1070729727,CA 1070729728,1071100927,US 1071100928,1071101951,PR @@ -13033,8 +13832,7 @@ 1072924672,1072925183,US 1072925184,1072925695,GB 1072925696,1072926207,CA -1072926208,1072926463,US -1072926464,1072926719,CA +1072926208,1072926719,US 1072926720,1072926975,PH 1072926976,1072927487,CA 1072927488,1072928511,US @@ -13083,9 +13881,7 @@ 1073028608,1073029119,GD 1073029120,1073031423,US 1073031424,1073031935,CW -1073031936,1073034751,US -1073034752,1073035007,BB -1073035008,1073035263,US +1073031936,1073035263,US 1073035264,1073036032,GD 1073036033,1073036543,US 1073036544,1073037055,MX @@ -13107,7 +13903,11 @@ 1073373184,1073381375,CA 1073381376,1073454591,US 1073454592,1073454847,KY -1073454848,1074020351,US +1073454848,1074008639,US +1074008640,1074008703,SG +1074008704,1074012671,US +1074012672,1074013183,FI +1074013184,1074020351,US 1074020352,1074028543,CA 1074028544,1074118655,US 1074118656,1074120959,CA @@ -13246,9 +14046,7 @@ 1075576897,1075577087,GB 1075577088,1075579391,NO 1075579392,1075579903,GB -1075579904,1075580415,NO -1075580416,1075580671,GB -1075580672,1075585023,NO +1075579904,1075585023,NO 1075585024,1075609599,US 1075609600,1075613695,TT 1075613696,1075769343,US @@ -13385,9 +14183,7 @@ 1076756480,1076772863,CA 1076772864,1076850687,US 1076850688,1076850943,CA -1076850944,1076851199,US -1076851200,1076851455,CA -1076851456,1076880383,US +1076850944,1076880383,US 1076880384,1076880639,CH 1076880640,1076880895,GB 1076880896,1077055487,US @@ -13407,7 +14203,9 @@ 1077841152,1077841407,GB 1077841408,1077848575,US 1077848576,1077848831,GR -1077848832,1077865983,US +1077848832,1077857279,US +1077857280,1077857535,FR +1077857536,1077865983,US 1077865984,1077866239,CA 1077866240,1077963775,US 1077963776,1077964031,JP @@ -13619,7 +14417,9 @@ 1079861248,1079865343,CA 1079865344,1079962879,US 1079962880,1079963135,GB -1079963136,1080024319,US +1079963136,1080015871,US +1080015872,1080016383,GB +1080016384,1080024319,US 1080024320,1080024575,CA 1080024576,1080033279,US 1080033280,1080164351,KY @@ -13632,9 +14432,7 @@ 1080514560,1080514815,GB 1080514816,1080568831,US 1080568832,1080569087,JP -1080569088,1080569343,US -1080569344,1080569599,JP -1080569600,1080589567,US +1080569088,1080589567,US 1080589568,1080589823,CN 1080589824,1080610559,US 1080610560,1080610815,AU @@ -13726,10 +14524,9 @@ 1082683392,1082687487,CA 1082687488,1082753023,US 1082753024,1082785791,CA -1082785792,1082788655,US -1082788656,1082788663,SG -1082788664,1082790911,US -1082790912,1082791167,AU +1082785792,1082788607,US +1082788608,1082788863,SG +1082788864,1082791167,US 1082791168,1082791423,IN 1082791424,1082945535,US 1082945536,1082949631,CA @@ -13771,7 +14568,9 @@ 1086042112,1086046207,CA 1086046208,1086050815,US 1086050816,1086051327,CA -1086051328,1086421503,US +1086051328,1086267391,US +1086267392,1086271487,CA +1086271488,1086421503,US 1086421504,1086422015,MP 1086422016,1086922751,US 1086922752,1086930943,CA @@ -13781,13 +14580,13 @@ 1086955520,1086971903,CA 1086971904,1087016959,US 1087016960,1087021055,CA -1087021056,1087399167,US -1087399168,1087399423,GB -1087399424,1087405407,US +1087021056,1087405407,US 1087405408,1087405423,MX 1087405424,1087413895,US 1087413896,1087413903,DE -1087413904,1087419135,US +1087413904,1087414783,US +1087414784,1087415039,CA +1087415040,1087419135,US 1087419136,1087419391,GB 1087419392,1087419903,US 1087419904,1087420159,CA @@ -13797,7 +14596,9 @@ 1087440896,1087442943,PR 1087442944,1087444223,US 1087444224,1087444479,GB -1087444480,1087466883,US +1087444480,1087448575,US +1087448576,1087448831,GB +1087448832,1087466883,US 1087466884,1087466887,GB 1087466888,1087496703,US 1087496704,1087496959,CA @@ -13805,17 +14606,18 @@ 1087501472,1087501479,GB 1087501480,1087501535,US 1087501536,1087501695,HK -1087501696,1087508161,US +1087501696,1087501823,SG +1087501824,1087508161,US 1087508162,1087508162,JP 1087508163,1087514623,US 1087514624,1087516671,BB -1087516672,1087591237,US +1087516672,1087589151,US +1087589152,1087589183,GB +1087589184,1087591237,US 1087591238,1087591238,FR 1087591239,1087593983,US 1087593984,1087594239,MX -1087594240,1087596031,US -1087596032,1087596287,DE -1087596288,1087608319,US +1087594240,1087608319,US 1087608320,1087608575,GB 1087608576,1087626111,US 1087626112,1087626239,VI @@ -13835,7 +14637,9 @@ 1087726016,1087726047,FR 1087726048,1087735743,US 1087735744,1087735807,CA -1087735808,1087758335,US +1087735808,1087743569,US +1087743570,1087743570,GB +1087743571,1087758335,US 1087758336,1087766527,PR 1087766528,1087783423,US 1087783424,1087783679,ZA @@ -13855,8 +14659,8 @@ 1087839232,1087839487,GB 1087839488,1087862783,US 1087862784,1087864831,PA -1087864832,1087873023,US -1087873024,1087873535,CA +1087864832,1087873279,US +1087873280,1087873535,CA 1087873536,1087883263,US 1087883264,1087883519,AR 1087883520,1087918511,US @@ -13865,10 +14669,14 @@ 1087950112,1087950119,PR 1087950120,1088012767,US 1088012768,1088012775,PR -1088012776,1088311615,US -1088311616,1088311679,CA -1088311680,1088684031,US -1088684032,1088946175,CA +1088012776,1088308479,US +1088308480,1088308735,CA +1088308736,1088412159,US +1088412160,1088412671,CA +1088412672,1088684031,US +1088684032,1088803071,CA +1088803072,1088803327,US +1088803328,1088946175,CA 1088946176,1089151231,US 1089151232,1089151487,NL 1089151488,1089167359,US @@ -14044,19 +14852,53 @@ 1093725184,1093730303,BB 1093730304,1093734053,US 1093734054,1093734054,PH -1093734055,1093965960,US -1093965961,1093965961,NL -1093965962,1093966163,US -1093966164,1093966164,NL -1093966165,1093966216,US -1093966217,1093966217,NL -1093966218,1093984294,US -1093984295,1093984295,IE -1093984296,1094074879,US +1093734055,1093943295,US +1093943296,1093947391,IE +1093947392,1093959679,US +1093959680,1093967871,NL +1093967872,1093976063,HK +1093976064,1093984255,US +1093984256,1093986303,IE +1093986304,1093990399,US +1093990400,1093992447,IE +1093992448,1094064127,US +1094064128,1094064575,IE +1094064576,1094064639,US +1094064640,1094064799,IE +1094064800,1094064831,US +1094064832,1094064863,IE +1094064864,1094064871,US +1094064872,1094064879,IE +1094064880,1094065087,US +1094065088,1094065119,IE +1094065120,1094065151,US +1094065152,1094066175,NL +1094066176,1094066407,IE +1094066408,1094066911,US +1094066912,1094066975,IE +1094066976,1094067199,US +1094067200,1094067423,IE +1094067424,1094068223,NL +1094068224,1094068479,SG +1094068480,1094074879,US 1094074880,1094075167,BR -1094075168,1094088959,US -1094088960,1094089023,PR -1094089024,1094565887,US +1094075168,1094077439,US +1094077440,1094077695,FR +1094077696,1094078975,US +1094078976,1094079231,SG +1094079232,1094079743,US +1094079744,1094079999,BR +1094080000,1094080511,US +1094080512,1094081023,NL +1094081024,1094088703,US +1094088704,1094090751,FR +1094090752,1094099471,US +1094099472,1094099487,NL +1094099488,1094099551,US +1094099552,1094099567,IE +1094099568,1094147631,US +1094147632,1094147647,SG +1094147648,1094565887,US 1094565888,1094582271,CA 1094582272,1095450623,US 1095450624,1095467007,BS @@ -14093,7 +14935,11 @@ 1097947208,1097947215,US 1097947216,1097947327,VI 1097947328,1097947391,US -1097947392,1097949183,VI +1097947392,1097947735,VI +1097947736,1097947743,US +1097947744,1097948327,VI +1097948328,1097948335,US +1097948336,1097949183,VI 1097949184,1097951231,US 1097951232,1097953279,VI 1097953280,1098070271,US @@ -14132,9 +14978,9 @@ 1101475840,1101479935,CO 1101479936,1101484031,US 1101484032,1101488127,CO -1101488128,1101521407,US -1101521408,1101521663,AS -1101521664,1101542399,US +1101488128,1101521663,US +1101521664,1101521919,AS +1101521920,1101542399,US 1101542400,1101542911,CO 1101542912,1101574655,US 1101574656,1101575167,EC @@ -14211,7 +15057,9 @@ 1104492288,1104492543,PH 1104492544,1104842751,US 1104842752,1104844799,PR -1104844800,1105099519,US +1104844800,1104899839,US +1104899840,1104900095,CA +1104900096,1105099519,US 1105099520,1105099775,EC 1105099776,1105719295,US 1105719296,1105723391,IN @@ -14337,7 +15185,9 @@ 1110573056,1110587391,PR 1110587392,1110587647,US 1110587648,1110588159,PR -1110588160,1110592767,US +1110588160,1110589951,US +1110589952,1110590207,PR +1110590208,1110592767,US 1110592768,1110593023,PR 1110593024,1110594815,US 1110594816,1110595071,PR @@ -14371,7 +15221,9 @@ 1111195648,1111212031,CA 1111212032,1111228415,US 1111228416,1111244799,AR -1111244800,1112424447,US +1111244800,1111982079,US +1111982080,1111998463,IT +1111998464,1112424447,US 1112432640,1112440831,CA 1112440832,1112530943,US 1112530944,1112539135,CA @@ -14465,9 +15317,7 @@ 1114877184,1114877439,CY 1114877440,1114877951,US 1114877952,1114878207,PA -1114878208,1115112575,US -1115112576,1115112607,IN -1115112608,1115113471,US +1114878208,1115113471,US 1115113472,1115114495,HN 1115114496,1115114751,MX 1115114752,1115115007,GT @@ -14480,7 +15330,16 @@ 1115118592,1115119615,SV 1115119616,1115127807,US 1115127808,1115131903,CA -1115131904,1115135999,US +1115131904,1115133183,US +1115133184,1115133439,CN +1115133440,1115133503,US +1115133504,1115133567,NL +1115133568,1115134975,US +1115134976,1115135359,HK +1115135360,1115135375,NL +1115135376,1115135615,US +1115135616,1115135647,SG +1115135648,1115135999,US 1115136000,1115144191,CA 1115144192,1115693055,US 1115693056,1115697151,AR @@ -14594,9 +15453,7 @@ 1118543872,1118547967,CA 1118547968,1118790655,US 1118790656,1118790911,IL -1118790912,1118792431,US -1118792432,1118792447,AR -1118792448,1118793471,US +1118790912,1118793471,US 1118793472,1118793727,CO 1118793728,1118796543,US 1118796544,1118796799,GB @@ -14880,7 +15737,9 @@ 1123184640,1123336191,US 1123336192,1123352575,CA 1123352576,1123394559,US -1123394560,1123394815,CA +1123394560,1123394687,CA +1123394688,1123394751,US +1123394752,1123394815,CA 1123394816,1123534847,US 1123534848,1123536895,AW 1123536896,1123589631,US @@ -14888,7 +15747,9 @@ 1123589888,1123590143,US 1123590144,1123598335,VI 1123598336,1123598591,CA -1123598592,1123635639,US +1123598592,1123635626,US +1123635627,1123635627,PL +1123635628,1123635639,US 1123635640,1123635640,RU 1123635641,1123635660,US 1123635661,1123635661,RU @@ -14896,7 +15757,9 @@ 1123635671,1123635671,RU 1123635672,1123635887,US 1123635888,1123635888,AU -1123635889,1123638730,US +1123635889,1123638614,US +1123638615,1123638615,RE +1123638616,1123638730,US 1123638731,1123638731,RE 1123638732,1123651583,US 1123651584,1123651839,JM @@ -14919,9 +15782,7 @@ 1123801088,1123801343,RU 1123801344,1123848191,US 1123848192,1123852287,CA -1123852288,1123929599,US -1123929600,1123929855,CA -1123929856,1123950591,US +1123852288,1123950591,US 1123950592,1123958783,CA 1123958784,1125064703,US 1125064704,1125065215,GB @@ -15051,9 +15912,7 @@ 1137639424,1137680959,US 1137680960,1137680975,UA 1137680976,1137704959,US -1137704960,1137706239,CA -1137706240,1137706495,US -1137706496,1137712383,CA +1137704960,1137712383,CA 1137712384,1137712639,US 1137712640,1137713151,CA 1137713152,1137758207,US @@ -15104,8 +15963,8 @@ 1138216960,1138373887,US 1138373888,1138374143,AS 1138374144,1138374399,US -1138374400,1138374911,AS -1138374912,1138375423,US +1138374400,1138375167,AS +1138375168,1138375423,US 1138375424,1138375679,AS 1138375680,1138419711,US 1138419712,1138419967,DE @@ -15119,7 +15978,9 @@ 1138528256,1138528511,CA 1138528512,1138544895,US 1138544896,1138545151,GB -1138545152,1138593791,US +1138545152,1138556415,US +1138556416,1138556671,NL +1138556672,1138593791,US 1138593792,1138597887,CA 1138597888,1138704383,US 1138704384,1138716671,CA @@ -15145,23 +16006,35 @@ 1139167488,1139168767,PR 1139168768,1139169279,US 1139169280,1139169791,PR -1139169792,1139170815,US -1139170816,1139171071,PR -1139171072,1139179519,US +1139169792,1139170047,US +1139170048,1139170303,PR +1139170304,1139179519,US 1139179520,1139195903,CA 1139195904,1139216383,US 1139216384,1139220479,CA 1139220480,1139265535,US 1139265536,1139269631,CA -1139269632,1144796287,US +1139269632,1142959359,US +1142959360,1142959487,CA +1142959488,1143261183,US +1143261184,1143261311,CA +1143261312,1143311167,US +1143311168,1143311359,CA +1143311360,1143647359,US +1143647360,1143647487,CA +1143647488,1143726079,US +1143726080,1143726207,CA +1143726208,1144796287,US 1144796288,1144796415,CA -1144796416,1144848383,US +1144796416,1144806527,US +1144806528,1144806655,CA +1144806656,1144848383,US 1144848384,1144848511,CA -1144848512,1145099519,US -1145099520,1145099697,SA -1145099698,1145099699,US -1145099700,1145099775,SA -1145099776,1145188351,US +1144848512,1144866303,US +1144866304,1144866431,CA +1144866432,1145099533,US +1145099534,1145099535,SA +1145099536,1145188351,US 1145188352,1145192447,CA 1145192448,1145242111,US 1145242112,1145242367,NO @@ -15204,7 +16077,9 @@ 1152117760,1152117952,IL 1152117953,1152117953,CA 1152117954,1152118015,IL -1152118016,1152122879,CA +1152118016,1152120575,CA +1152120576,1152120831,US +1152120832,1152122879,CA 1152122880,1152581631,US 1152581632,1152614399,CA 1152614400,1152778239,US @@ -15267,9 +16142,7 @@ 1158441472,1158441983,CA 1158441984,1158443007,DM 1158443008,1158774783,US -1158774784,1158784703,CA -1158784704,1158784767,US -1158784768,1158791167,CA +1158774784,1158791167,CA 1158791168,1158794239,BM 1158794240,1158794495,US 1158794496,1158799359,BM @@ -15340,9 +16213,7 @@ 1159694592,1159694847,CA 1159694848,1159700479,US 1159700480,1159725055,CA -1159725056,1159767039,US -1159767040,1159767295,CA -1159767296,1160011775,US +1159725056,1160011775,US 1160011776,1160019967,CA 1160019968,1160364031,US 1160364032,1160368127,CA @@ -15368,9 +16239,7 @@ 1160425472,1160429567,CA 1160429568,1160486911,US 1160486912,1160487423,AU -1160487424,1160505343,US -1160505344,1160505855,AU -1160505856,1160547839,US +1160487424,1160547839,US 1160547840,1160548351,MX 1160548352,1160563199,US 1160563200,1160563711,MP @@ -15400,7 +16269,9 @@ 1161052672,1161052927,GB 1161052928,1161053439,US 1161053440,1161053695,GB -1161053696,1161293823,US +1161053696,1161073407,US +1161073408,1161073663,AU +1161073664,1161293823,US 1161293824,1161297919,CA 1161297920,1161363455,US 1161363456,1161367551,CA @@ -15553,17 +16424,13 @@ 1162883840,1162884863,BB 1162884864,1162885887,VC 1162885888,1162887167,BB -1162887168,1163398655,US -1163398656,1163398911,BD -1163398912,1163400959,US +1162887168,1163399167,US +1163399168,1163399423,WS +1163399424,1163400959,US 1163400960,1163401215,BD 1163401216,1163401471,US 1163401472,1163401727,ID -1163401728,1163401983,US -1163401984,1163402239,BD -1163402240,1163402495,US -1163402496,1163402751,BD -1163402752,1163407359,US +1163401728,1163407359,US 1163407360,1163411455,CA 1163411456,1163468799,US 1163468800,1163469055,PR @@ -15663,9 +16530,9 @@ 1163571200,1163571967,CA 1163571968,1163572223,US 1163572224,1163572479,CA -1163572480,1163572991,US -1163572992,1163573247,CA -1163573248,1163575039,US +1163572480,1163573439,US +1163573440,1163573503,IN +1163573504,1163575039,US 1163575040,1163575295,IN 1163575296,1163576575,CA 1163576576,1163579903,US @@ -15703,11 +16570,7 @@ 1168393520,1168393543,US 1168393544,1168393567,CA 1168393568,1168393663,US -1168393664,1168393791,CA -1168393792,1168393935,US -1168393936,1168393943,CA -1168393944,1168393951,US -1168393952,1168393983,CA +1168393664,1168393983,CA 1168393984,1168394143,US 1168394144,1168394151,CA 1168394152,1168394279,US @@ -15813,9 +16676,7 @@ 1170489344,1170497535,CA 1170497536,1170505727,US 1170505728,1170522111,CA -1170522112,1175726591,US -1175726592,1175726719,CA -1175726720,1175728639,US +1170522112,1175728639,US 1175728640,1175728895,CA 1175728896,1175977983,US 1175977984,1176068167,CA @@ -15859,11 +16720,14 @@ 1176771584,1176771839,GB 1176771840,1176776703,US 1176776704,1176780799,CA -1176780800,1176867583,US -1176867584,1176867839,AU -1176867840,1176868095,US -1176868096,1176868111,AU -1176868112,1176895487,US +1176780800,1176864767,US +1176864768,1176865535,FR +1176865536,1176868095,US +1176868096,1176868351,AU +1176868352,1176868863,BR +1176868864,1176878607,US +1176878608,1176878639,SG +1176878640,1176895487,US 1176895488,1176897047,CA 1176897048,1176897055,US 1176897056,1176900735,CA @@ -15878,14 +16742,12 @@ 1176925008,1176925015,NG 1176925016,1176928255,CA 1176928256,1177000703,US -1177000704,1177000735,CA +1177000704,1177000711,CA +1177000712,1177000719,US +1177000720,1177000735,CA 1177000736,1177000751,US 1177000752,1177000759,CA -1177000760,1177000791,US -1177000792,1177000799,CA -1177000800,1177000807,US -1177000808,1177000959,CA -1177000960,1177022975,US +1177000760,1177022975,US 1177022976,1177023231,GB 1177023232,1177030655,US 1177030656,1177033727,AG @@ -15902,14 +16764,16 @@ 1177165312,1177354239,US 1177354240,1177419775,PR 1177419776,1177550847,US -1177550848,1177593599,CA -1177593600,1177593855,US -1177593856,1178075135,CA +1177550848,1177592831,CA +1177592832,1177593087,US +1177593088,1178075135,CA 1178075136,1178599423,US 1178599424,1179910143,CA 1179910144,1180113919,US 1180113920,1180114431,AE -1180114432,1191673855,US +1180114432,1181351167,US +1181351168,1181351423,CA +1181351424,1191673855,US 1191673856,1191706623,CA 1191706624,1192232127,US 1192232128,1192232159,PA @@ -15921,7 +16785,9 @@ 1192468480,1192476671,CA 1192476672,1192488959,US 1192488960,1192493055,CA -1192493056,1202304255,US +1192493056,1202291711,US +1202291712,1202291967,CA +1202291968,1202304255,US 1202304256,1202304383,CA 1202304384,1207975935,US 1207975936,1207980031,CA @@ -15961,11 +16827,9 @@ 1208935984,1208935991,IN 1208935992,1208935999,JP 1208936000,1208936003,HK -1208936004,1208936007,US +1208936004,1208936007,IN 1208936008,1208936015,ID -1208936016,1208936031,US -1208936032,1208936039,IN -1208936040,1208936191,US +1208936016,1208936191,IN 1208936192,1208936199,AU 1208936200,1208936207,SG 1208936208,1208936215,HK @@ -16028,7 +16892,9 @@ 1210254936,1210254943,CA 1210254944,1210256127,US 1210256128,1210256383,CA -1210256384,1210259967,US +1210256384,1210257663,US +1210257664,1210257919,CA +1210257920,1210259967,US 1210259968,1210260223,CA 1210260224,1210314751,US 1210314752,1210315007,GB @@ -16164,24 +17030,30 @@ 1224476978,1224477183,US 1224477184,1224477439,SX 1224477440,1224477695,US -1224477696,1224478719,SX +1224477696,1224478207,SX +1224478208,1224478463,US +1224478464,1224478719,SX 1224478720,1224480767,US 1224480768,1224484863,JM 1224484864,1224493055,GT 1224493056,1224497151,US 1224497152,1224501247,GT -1224501248,1224523519,JM +1224501248,1224503551,JM +1224503552,1224503807,BS +1224503808,1224523519,JM 1224523520,1224523775,US 1224523776,1224525568,JM 1224525569,1224525823,US 1224525824,1224539904,JM -1224539905,1235708415,US -1235708416,1235708927,CA -1235708928,1237309823,US +1224539905,1235191807,US +1235191808,1235192063,CA +1235192064,1235708415,US +1235708416,1235708799,CA +1235708800,1237309823,US 1237309824,1237309951,CA -1237309952,1238547071,US -1238547072,1238547199,PR -1238547200,1241743359,US +1237309952,1240100351,US +1240100352,1240100607,CA +1240100608,1241743359,US 1241743360,1241759743,CA 1241759744,1242300415,US 1242300416,1242562559,CA @@ -16197,9 +17069,7 @@ 1245144576,1245144831,CH 1245144832,1245183999,US 1245184000,1245446143,CA -1245446144,1245450186,US -1245450187,1245450187,GU -1245450188,1246890431,US +1245446144,1246890431,US 1246890432,1246890463,CA 1246890464,1246890464,US 1246890465,1246890495,CA @@ -16213,9 +17083,11 @@ 1246923520,1246923775,AU 1246923776,1246937087,US 1246937088,1246945279,CA -1246945280,1247073023,US -1247073024,1247073279,CA -1247073280,1247490047,US +1246945280,1247101439,US +1247101440,1247101695,CA +1247101696,1247129599,US +1247129600,1247133695,NL +1247133696,1247490047,US 1247494144,1248864255,US 1248864256,1248866303,CA 1248866304,1248879615,US @@ -16235,9 +17107,7 @@ 1248936960,1248939007,CA 1248939008,1248946175,US 1248946176,1248947199,VG -1248947200,1248956415,US -1248956416,1248957439,CA -1248957440,1248958463,US +1248947200,1248958463,US 1248958464,1248959487,CA 1248959488,1248964607,US 1248964608,1248966655,CA @@ -16251,7 +17121,7 @@ 1249019904,1249020927,CA 1249020928,1249029119,US 1249029120,1249030143,CA -1249030144,1249032191,US +1249030144,1249032447,US 1249033216,1249036287,US 1249036288,1249037311,TC 1249037312,1249038335,US @@ -16376,26 +17246,26 @@ 1249716736,1249717759,US 1249717760,1249718015,FI 1249718016,1249718271,NL -1249718272,1249720339,US +1249718272,1249720319,US +1249720320,1249720339,JP 1249720340,1249720343,AU -1249720344,1249720351,US -1249720352,1249720367,JP -1249720368,1249720383,SG -1249720384,1249720511,US +1249720344,1249720511,JP 1249720512,1249720527,IN 1249720528,1249720543,AU -1249720544,1249720575,US +1249720544,1249720575,JP 1249720576,1249720591,FR -1249720592,1249720599,GB +1249720592,1249720599,US 1249720600,1249720607,DE -1249720608,1249720663,GB +1249720608,1249720623,US +1249720624,1249720631,GB +1249720632,1249720663,US 1249720664,1249720671,SE -1249720672,1249720711,GB +1249720672,1249720707,GB +1249720708,1249720711,US 1249720712,1249720719,NL -1249720720,1249720831,GB -1249720832,1249721119,US -1249721120,1249721135,CA -1249721136,1249721343,US +1249720720,1249720751,US +1249720752,1249720767,GB +1249720768,1249721343,US 1249721344,1249721351,AT 1249721352,1249721359,BE 1249721360,1249721367,CH @@ -16471,15 +17341,15 @@ 1249852160,1249886207,US 1249886208,1249902591,CA 1249902592,1254490111,US -1254490112,1254532095,CA -1254532096,1254532223,RU -1254532224,1254555647,CA +1254490112,1254555647,CA 1254555648,1254621183,US 1254621184,1254629375,CA 1254629376,1254978751,US 1254978752,1254978767,LB 1254978768,1254989823,US -1254989824,1254998015,CA +1254989824,1254990335,CA +1254990336,1254990591,US +1254990592,1254998015,CA 1254998016,1255002111,US 1255002112,1255006207,CA 1255006208,1255011583,US @@ -16520,19 +17390,21 @@ 1256054400,1256054783,CZ 1256054784,1256079359,US 1256079360,1256087551,KY -1256087552,1262783487,US -1262783488,1262783615,CA -1262783616,1262783743,US -1262783744,1262784511,CA -1262784512,1264717823,US +1256087552,1262783615,US +1262783616,1262783871,CA +1262783872,1262783886,US +1262783887,1262783887,CA +1262783888,1264717823,US 1264717824,1264718079,CA 1264718080,1264718591,US 1264718592,1264718847,CA 1264718848,1264719103,US 1264719104,1264719871,CA -1264719872,1264746527,US -1264746528,1264746543,CA -1264746544,1264762879,US +1264719872,1264746495,US +1264746496,1264746751,CA +1264746752,1264747007,US +1264747008,1264747263,CA +1264747264,1264762879,US 1264762880,1264763391,CA 1264763392,1264763647,IE 1264763648,1264766975,CA @@ -16566,7 +17438,9 @@ 1275789312,1275822079,CA 1275822080,1275912759,US 1275912760,1275912783,CA -1275912784,1279262719,US +1275912784,1276160255,US +1276160256,1276160511,PR +1276160512,1279262719,US 1279262720,1279787007,CA 1279787008,1279848447,US 1279848448,1279852543,PR @@ -16690,7 +17564,9 @@ 1296105472,1296171007,PL 1296171008,1296203775,DK 1296203776,1296236543,RU -1296236544,1296237439,FR +1296236544,1296236671,FR +1296236672,1296236799,US +1296236800,1296237439,FR 1296237440,1296237567,IT 1296237568,1296237823,FR 1296237824,1296238079,GB @@ -16718,7 +17594,13 @@ 1296249024,1296249087,GB 1296249088,1296249279,FR 1296249280,1296249343,DE -1296249344,1296249567,FR +1296249344,1296249407,FR +1296249408,1296249423,GB +1296249424,1296249439,FR +1296249440,1296249455,GB +1296249456,1296249463,FR +1296249464,1296249471,GB +1296249472,1296249567,FR 1296249568,1296249599,NO 1296249600,1296249615,GB 1296249616,1296250367,FR @@ -16728,8 +17610,7 @@ 1296250464,1296250495,RO 1296250496,1296250527,FR 1296250528,1296250559,DK -1296250560,1296250623,FR -1296250624,1296250847,BE +1296250560,1296250847,FR 1296250848,1296250879,GB 1296250880,1296251199,FR 1296251200,1296251231,NL @@ -16945,9 +17826,7 @@ 1297171456,1297172479,RO 1297172480,1297172991,GB 1297172992,1297173503,RO -1297173504,1297173759,IR -1297173760,1297173775,IQ -1297173776,1297175551,IR +1297173504,1297175551,IR 1297175552,1297176319,GB 1297176320,1297176831,RO 1297176832,1297177599,GB @@ -16971,7 +17850,7 @@ 1297196800,1297197055,CN 1297197056,1297203199,RO 1297203200,1297211391,IR -1297211392,1297215487,RO +1297211392,1297215487,IT 1297215488,1297217535,NL 1297217536,1297219583,AZ 1297219584,1297285119,RU @@ -17111,9 +17990,7 @@ 1298956288,1298972671,GB 1298972672,1298989055,RU 1298989056,1299005439,UA -1299005440,1299009023,NL -1299009024,1299009279,BE -1299009280,1299010047,NL +1299005440,1299010047,NL 1299010048,1299010815,BE 1299010816,1299013119,NL 1299013120,1299013375,BE @@ -17124,7 +18001,9 @@ 1299019776,1299020031,NL 1299020032,1299021055,BE 1299021056,1299021823,NL -1299021824,1299026111,CH +1299021824,1299025148,CH +1299025149,1299025149,DE +1299025150,1299026111,CH 1299026112,1299026127,ES 1299026128,1299038207,CH 1299038208,1299054591,FI @@ -17142,14 +18021,14 @@ 1299709952,1299972095,UA 1299972096,1300234239,IL 1300234240,1302331391,FR -1302331392,1303154431,NL -1303154432,1303154687,RO -1303154688,1303379967,NL +1302331392,1303379967,NL 1303379968,1304428543,DE 1304428544,1305477119,FR 1305477120,1305739263,ES 1305739264,1306001407,DK -1306001408,1306198015,SE +1306001408,1306142659,SE +1306142660,1306142660,EE +1306142661,1306198015,SE 1306198016,1306206207,LV 1306206208,1306214399,HR 1306214400,1306222591,LT @@ -17318,12 +18197,28 @@ 1307807744,1307811839,SE 1307811840,1307815935,NL 1307816192,1307816447,GB -1307817216,1307817471,DE +1307816960,1307817215,NL +1307817216,1307817219,DE +1307817220,1307817223,CZ +1307817224,1307817231,DE +1307817232,1307817251,CZ +1307817252,1307817255,HU +1307817256,1307817259,CZ +1307817260,1307817471,DE +1307817728,1307817983,DE 1307817984,1307818048,GB 1307818049,1307818049,BE 1307818050,1307818239,GB 1307819008,1307819263,GB -1307819264,1307819519,NL +1307819264,1307819287,NL +1307819288,1307819331,DE +1307819332,1307819343,NL +1307819344,1307819355,DE +1307819356,1307819395,NL +1307819396,1307819399,DE +1307819400,1307819407,NL +1307819408,1307819431,DE +1307819432,1307819519,NL 1307819520,1307819775,GB 1307820032,1307824127,PT 1307824128,1307828223,HU @@ -17348,7 +18243,9 @@ 1307901952,1307906047,JO 1307906048,1307910143,CH 1307910144,1307914239,DE -1307914240,1307918335,NL +1307914240,1307914495,NL +1307914496,1307914527,GB +1307914528,1307918335,NL 1307918336,1307922431,GB 1307922432,1307926527,NL 1307926528,1307930623,KZ @@ -17540,7 +18437,11 @@ 1311301632,1311303679,TR 1311303680,1311307775,GB 1311307776,1311309823,IS -1311309824,1311311871,GB +1311309824,1311310591,GB +1311310592,1311310847,GG +1311310848,1311311103,GB +1311311104,1311311359,GG +1311311360,1311311871,GB 1311311872,1311315967,CZ 1311315968,1311318015,PL 1311318016,1311320063,RU @@ -17572,14 +18473,10 @@ 1311593432,1311593432,US 1311593433,1311637503,CZ 1311637504,1312292863,DE -1312292864,1312304383,LT -1312304384,1312304639,GB -1312304640,1312564479,LT -1312564480,1312564735,RU -1312564736,1312817151,LT -1312817152,1313191295,SE -1313191296,1313191423,DK -1313191424,1313865727,SE +1312292864,1312817151,LT +1312817152,1313379583,SE +1313379584,1313379839,DK +1313379840,1313865727,SE 1313865728,1313931263,CZ 1313931264,1313996799,RU 1313996800,1314062335,SE @@ -17609,18 +18506,14 @@ 1315713024,1315717119,SE 1315717120,1315725311,RU 1315725312,1315729407,CZ -1315733504,1315737599,NL +1315733504,1315736063,NL +1315736064,1315736319,BE +1315736320,1315737599,NL 1315737600,1315741695,CZ 1315741696,1315745791,LB 1315745792,1315749887,CZ 1315749888,1315753983,RU -1315758080,1315758335,FR -1315758336,1315758591,RE -1315758592,1315758847,FR -1315758848,1315759103,RE -1315759104,1315759615,FR -1315759616,1315759871,RE -1315759872,1315762175,FR +1315758080,1315762175,FR 1315762176,1315766271,BG 1315766272,1315770367,NL 1315770368,1315774463,UA @@ -17689,9 +18582,7 @@ 1317371904,1317404671,PL 1317404672,1317437439,IT 1317437440,1317470207,HR -1317470208,1317473535,TR -1317473536,1317473791,GB -1317473792,1317502975,TR +1317470208,1317502975,TR 1317502976,1317535743,IE 1317535744,1317552127,GB 1317552128,1317568511,ES @@ -17703,9 +18594,7 @@ 1317627904,1317629951,RU 1317629952,1317636095,GB 1317636096,1317637119,IE -1317637120,1317640959,GB -1317640960,1317641215,IE -1317641216,1317642239,GB +1317637120,1317642239,GB 1317642240,1317642495,IE 1317642496,1317643316,GB 1317643317,1317643317,IE @@ -17719,9 +18608,7 @@ 1317650432,1317666815,PT 1317666816,1317679727,GB 1317679728,1317679735,CM -1317679736,1317681919,GB -1317681920,1317682175,NG -1317682176,1317683199,GB +1317679736,1317683199,GB 1317683200,1317699583,DE 1317699584,1317715967,RU 1317715968,1317732351,SA @@ -17729,7 +18616,9 @@ 1317748736,1317765119,RU 1317765120,1317781503,GE 1317781504,1317814271,RU -1317814272,1317830655,DE +1317814272,1317816335,DE +1317816336,1317816351,JP +1317816352,1317830655,DE 1317830656,1317847039,NL 1317847040,1317863423,RU 1317863424,1317879807,GB @@ -17741,7 +18630,9 @@ 1317978112,1317994495,RU 1317994496,1318010879,DE 1318010880,1318027263,DK -1318027264,1318043647,IE +1318027264,1318035711,IE +1318035712,1318035967,GB +1318035968,1318043647,IE 1318043648,1318584319,GB 1318584320,1318592511,PL 1318592512,1318593983,NL @@ -17811,7 +18702,8 @@ 1319002112,1319010303,IE 1319010304,1319018495,CY 1319018496,1319026687,IR -1319026688,1319034879,RU +1319026688,1319026943,UA +1319026944,1319034879,RU 1319034880,1319035903,NO 1319035904,1319036927,DK 1319036928,1319038975,SE @@ -17877,9 +18769,7 @@ 1331902464,1331904511,MK 1331904512,1331908607,GB 1331908608,1331910655,DE -1331912704,1331912959,DE -1331912960,1331913215,GB -1331913216,1331914751,DE +1331912704,1331914751,DE 1331914752,1331916799,RU 1331916800,1331918847,IT 1331918848,1331920895,BE @@ -17891,11 +18781,7 @@ 1331931136,1331933183,SE 1331933184,1331935231,TR 1331935232,1331937279,NL -1331937280,1331938063,NG -1331938064,1331938079,GB -1331938080,1331938431,NG -1331938432,1331938559,GB -1331938560,1331939327,NG +1331937280,1331939327,GB 1331939328,1331941375,BE 1331941376,1331943423,ES 1331943424,1331945471,RU @@ -17957,9 +18843,13 @@ 1334091776,1334099967,LT 1334099968,1334108159,IR 1334108160,1334116351,BE -1334116352,1334124543,AX +1334116352,1334118399,AX +1334118400,1334118655,FI +1334118656,1334124543,AX 1334124544,1334125823,DE -1334125824,1334126591,ES +1334125824,1334125915,ES +1334125916,1334125916,DE +1334125917,1334126591,ES 1334126592,1334127359,DE 1334127360,1334127615,AT 1334127616,1334130687,DE @@ -18010,9 +18900,7 @@ 1334620160,1334624255,DE 1334624256,1334625791,GB 1334625792,1334626047,AU -1334626048,1334627071,GB -1334627072,1334627327,AU -1334627328,1334628351,GB +1334626048,1334628351,GB 1334628352,1334632447,IE 1334632448,1334636543,KZ 1334636544,1334640639,RU @@ -18054,10 +18942,9 @@ 1334710272,1334714367,RU 1334714368,1334718463,DE 1334718464,1334722559,KZ -1334722560,1334723583,NL -1334723584,1334723839,BE +1334722560,1334723839,NL 1334723840,1334724095,DK -1334724096,1334724351,NO +1334724096,1334724351,NL 1334724352,1334724607,SE 1334724608,1334724863,US 1334724864,1334725631,NL @@ -18197,51 +19084,43 @@ 1342753024,1342753535,FR 1342753536,1342754047,YT 1342754048,1342754303,FR -1342754304,1342754559,YT -1342754560,1342754815,FR -1342754816,1342756095,YT -1342756096,1342758911,FR -1342758912,1342759423,YT -1342759424,1342759935,FR -1342759936,1342760447,YT -1342760448,1342760703,FR -1342760704,1342761727,YT -1342761728,1342761983,FR -1342761984,1342763007,YT -1342763008,1342763263,FR -1342763264,1342764543,YT +1342754304,1342754815,YT +1342754816,1342755071,FR +1342755072,1342756351,YT +1342756352,1342756607,FR +1342756608,1342756863,YT +1342756864,1342757375,FR +1342757376,1342757631,YT +1342757632,1342759167,FR +1342759168,1342759423,YT +1342759424,1342759679,FR +1342759680,1342760703,YT +1342760704,1342760959,FR +1342760960,1342761471,YT +1342761472,1342761727,FR +1342761728,1342764543,YT 1342764544,1342988287,FR 1342988288,1342989055,US -1342989056,1342996479,FR -1342996480,1342997759,GF -1342997760,1342998015,FR -1342998016,1342998783,GF +1342989056,1342996735,FR +1342996736,1342998783,GF 1342998784,1342999039,FR 1342999040,1342999807,GF 1342999808,1343000063,FR 1343000064,1343000575,GF 1343000576,1343000831,FR -1343000832,1343001087,GF -1343001088,1343001599,FR -1343001600,1343001855,GF -1343001856,1343002367,FR +1343000832,1343001343,GF +1343001344,1343001599,FR +1343001600,1343002111,GF +1343002112,1343002367,FR 1343002368,1343003391,GF -1343003392,1343004159,FR -1343004160,1343004415,GF +1343003392,1343003903,FR +1343003904,1343004415,GF 1343004416,1343004671,FR -1343004672,1343005951,GF -1343005952,1343006207,FR -1343006208,1343006975,GF +1343004672,1343006975,GF 1343006976,1343007743,FR -1343007744,1343007999,GF -1343008000,1343008255,FR -1343008256,1343009791,GF -1343009792,1343010303,FR -1343010304,1343010815,GF -1343010816,1343011071,FR -1343011072,1343011327,GF -1343011328,1343011583,FR -1343011584,1343012863,GF +1343007744,1343010047,GF +1343010048,1343010303,FR +1343010304,1343012863,GF 1343012864,1343017983,FR 1343017984,1343018495,RE 1343018496,1343025151,FR @@ -18354,8 +19233,8 @@ 1346744320,1346748415,RU 1346748416,1346752511,DE 1346752512,1346753791,FR -1346753792,1346754303,RE -1346754304,1346756607,FR +1346753792,1346754047,RE +1346754048,1346756607,FR 1346756608,1346760703,SE 1346760704,1346764799,IR 1346764800,1346768895,DK @@ -18446,7 +19325,9 @@ 1347149568,1347149823,IN 1347149824,1347151423,HU 1347151424,1347158015,AT -1347158016,1347162111,CH +1347158016,1347159935,CH +1347159936,1347160063,AT +1347160064,1347162111,CH 1347162112,1347166207,IT 1347166208,1347174399,GR 1347174400,1347182591,IT @@ -18901,7 +19782,9 @@ 1348096000,1348100095,AL 1348100096,1348104191,DE 1348104192,1348108287,RU -1348108288,1348112383,CZ +1348108288,1348111359,CZ +1348111360,1348111615,SK +1348111616,1348112383,CZ 1348112384,1348116479,DE 1348116480,1348120575,JO 1348120576,1348124671,RU @@ -18924,6 +19807,7 @@ 1348190208,1348194303,RU 1348194304,1348198399,GR 1348198400,1348202495,NO +1348205258,1348205258,DE 1348206592,1348218879,RU 1348218880,1348222975,DE 1348222976,1348231167,LU @@ -18951,7 +19835,16 @@ 1348317184,1348321279,RU 1348321280,1348325375,GB 1348325376,1348329471,TR -1348329472,1348337663,RS +1348329472,1348333599,RS +1348333600,1348333607,XK +1348333608,1348333631,RS +1348333632,1348333807,XK +1348333808,1348333823,RS +1348333824,1348334079,XK +1348334080,1348336191,RS +1348336192,1348336383,XK +1348336384,1348337471,RS +1348337472,1348337663,XK 1348337664,1348341759,ES 1348341760,1348345855,PL 1348345856,1348349951,GB @@ -18968,15 +19861,12 @@ 1348390912,1348395007,SE 1348395008,1348399103,BY 1348399104,1348403199,MD -1348403200,1348404223,ZA -1348405248,1348407295,ZA +1348403200,1348407295,ZA 1348407296,1348411391,BG 1348411392,1348415487,RU 1348415488,1348419583,GB 1348419584,1348427775,HU -1348427776,1348429823,CZ -1348429824,1348430079,AU -1348430080,1348435967,CZ +1348427776,1348435967,CZ 1348435968,1348440063,FI 1348440064,1348444159,DE 1348444160,1348448255,NL @@ -18994,9 +19884,7 @@ 1349124096,1349255167,GR 1349255168,1349451775,AT 1349451776,1349517311,IE -1349517312,1349554687,NL -1349554688,1349554943,NO -1349554944,1349763071,NL +1349517312,1349763071,NL 1349763072,1349771263,RU 1349771264,1349779455,NL 1349779456,1349910527,IT @@ -19044,9 +19932,7 @@ 1353287960,1353287967,IE 1353287968,1353288191,GB 1353288192,1353288447,IE -1353288448,1353289215,GB -1353289216,1353289471,IE -1353289472,1353298783,GB +1353288448,1353298783,GB 1353298784,1353298815,SE 1353298816,1353298895,GB 1353298896,1353298911,SE @@ -19056,14 +19942,17 @@ 1353300064,1353300071,SE 1353300072,1353300079,GB 1353300080,1353300095,SE -1353300096,1353306623,GB -1353306624,1353306879,BE -1353306880,1353308159,GB +1353300096,1353306695,GB +1353306696,1353306703,BE +1353306704,1353308159,GB 1353308160,1353309183,FR 1353309184,1353312447,GB 1353312448,1353312479,CH -1353312480,1353315327,GB -1353315328,1353316351,ES +1353312480,1353312767,GB +1353312768,1353313023,IT +1353313024,1353315327,GB +1353315328,1353315583,US +1353315584,1353316351,ES 1353316352,1353318399,GB 1353318400,1353383935,SE 1353383936,1353449471,DE @@ -19088,7 +19977,9 @@ 1354694656,1354760191,IR 1354760192,1355022335,GB 1355022336,1355284479,DK -1355284480,1355415551,BE +1355284480,1355366399,BE +1355366400,1355366655,FR +1355366656,1355415551,BE 1355415552,1355546623,NO 1355546624,1355808767,IT 1355808768,1356070911,DK @@ -19125,6 +20016,7 @@ 1357324296,1357324319,PL 1357324320,1357325311,GB 1357326336,1357326337,ES +1357326338,1357326339,SL 1357326848,1357327103,GB 1357327360,1357327615,FR 1357328384,1357328671,GB @@ -19133,11 +20025,11 @@ 1357330944,1357331199,GB 1357335808,1357336063,IT 1357337600,1357337635,NL +1357337640,1357337647,NL 1357340672,1357341695,GB 1357342976,1357343231,GB 1357343488,1357343503,GB -1357344260,1357344271,FR -1357344512,1357344767,FR +1357344256,1357344767,FR 1357346816,1357346835,FR 1357346848,1357346863,FR 1357347336,1357347375,FR @@ -19145,13 +20037,14 @@ 1357347616,1357347659,FR 1357347664,1357347671,FR 1357347680,1357347727,FR +1357347744,1357347775,FR 1357347840,1357348095,PL +1357348352,1357348359,ES 1357348384,1357348415,ES 1357348480,1357348607,ES -1357350400,1357350639,GB +1357350400,1357350647,GB 1357350656,1357350847,GB 1357351168,1357351423,PL -1357355520,1357355775,FR 1357360064,1357360383,GB 1357361152,1357363199,GB 1357363200,1357364223,QA @@ -19170,9 +20063,9 @@ 1357373536,1357373539,ES 1357373540,1357373543,PT 1357373544,1357373555,GB -1357373560,1357375199,GB -1357377536,1357377679,FR -1357377696,1357378623,FR +1357373560,1357375207,GB +1357375232,1357375295,GB +1357377536,1357378623,FR 1357381632,1357414399,NO 1357414400,1357447167,LV 1357447168,1357479935,IE @@ -19212,6 +20105,7 @@ 1357885952,1357886207,SE 1357889024,1357889279,GB 1357889280,1357889535,SE +1357889792,1357890047,SE 1357890828,1357890831,NL 1357891072,1357891327,NL 1357891584,1357891647,SE @@ -19286,8 +20180,8 @@ 1358036992,1358041087,IR 1358041088,1358045183,FI 1358045184,1358049279,SK -1358049280,1358062591,RU -1358062592,1358065663,UA +1358049280,1358064639,RU +1358064640,1358065663,UA 1358065664,1358069759,BA 1358069760,1358086143,DE 1358086144,1358090239,CH @@ -19309,10 +20203,10 @@ 1358151680,1358155775,DE 1358155776,1358159871,CH 1358163968,1358164479,FR -1358164480,1358164735,MQ -1358164736,1358164991,FR -1358164992,1358165247,MQ -1358165248,1358167807,FR +1358164480,1358165247,MQ +1358165248,1358167295,FR +1358167296,1358167551,GP +1358167552,1358167807,FR 1358167808,1358168063,GP 1358168064,1358172159,GB 1358172160,1358176255,CY @@ -19431,9 +20325,7 @@ 1358670976,1358670991,PT 1358670992,1358671001,GB 1358671002,1358671002,PT -1358671003,1358671359,GB -1358671360,1358671615,PT -1358671616,1358671935,GB +1358671003,1358671935,GB 1358671936,1358671943,PT 1358671944,1358675967,GB 1358675968,1358676991,SE @@ -19538,7 +20430,9 @@ 1359122432,1359123967,DE 1359123968,1359124479,ES 1359124480,1359134719,DE -1359134720,1359151103,CZ +1359134720,1359147960,CZ +1359147961,1359147961,PT +1359147962,1359151103,CZ 1359151104,1359167487,DE 1359167488,1359183871,GB 1359183872,1359200255,RU @@ -19560,7 +20454,9 @@ 1359446016,1359462399,DK 1359462400,1359467007,DE 1359467008,1359467263,US -1359467264,1359470591,DE +1359467264,1359468607,DE +1359468608,1359468623,SG +1359468624,1359470591,DE 1359470592,1359478783,CH 1359478784,1359511551,TR 1359511552,1359544319,SE @@ -19649,7 +20545,9 @@ 1360282496,1360282623,DE 1360282624,1360284671,NL 1360284672,1360284927,DK -1360284928,1360285695,NL +1360284928,1360285183,NL +1360285184,1360285247,ES +1360285248,1360285695,NL 1360285696,1360289791,DE 1360289792,1360293887,RU 1360293888,1360302079,DE @@ -19809,9 +20707,15 @@ 1360986357,1360986358,US 1360986359,1360986367,GB 1360986368,1360986399,US -1360986400,1360986631,GB +1360986400,1360986431,GB +1360986432,1360986447,US +1360986448,1360986631,GB 1360986632,1360986635,US -1360986636,1360992255,GB +1360986636,1360986755,GB +1360986756,1360986763,US +1360986764,1360989929,GB +1360989930,1360989930,FR +1360989931,1360992255,GB 1360992256,1360992511,DE 1360992512,1360993095,GB 1360993096,1360993099,DE @@ -19871,9 +20775,7 @@ 1364526592,1364528639,GB 1364528640,1364529663,NL 1364529664,1364530175,GB -1364530176,1364537343,NL -1364537344,1364537599,IS -1364537600,1364541439,NL +1364530176,1364541439,NL 1364541440,1364545535,SE 1364545536,1364581375,NL 1364581376,1364582399,LY @@ -20007,9 +20909,7 @@ 1365237760,1365241855,UZ 1365241856,1365245951,DK 1365245952,1366294527,GB -1366294528,1366405831,IT -1366405832,1366405835,SI -1366405836,1367343103,IT +1366294528,1367343103,IT 1367343104,1369440255,GB 1369440256,1369473023,DE 1369473024,1369505791,HU @@ -20135,7 +21035,7 @@ 1372004352,1372012543,GB 1372012544,1372013567,ZM 1372013568,1372020735,GB -1372020736,1372020991,ZM +1372020736,1372020991,LR 1372020992,1372021247,CD 1372021248,1372022783,ZM 1372022784,1372026623,GB @@ -20208,31 +21108,27 @@ 1373437952,1373503487,CH 1373503488,1373569023,RU 1373569024,1373634559,AT -1373634560,1374433279,SE -1374433280,1374433535,DK -1374433536,1374683135,SE +1373634560,1374683135,SE 1374683136,1375207423,BE -1375207424,1375207679,FR -1375207680,1375208447,MQ +1375207424,1375208447,MQ 1375208448,1375208703,GP 1375208704,1375208959,FR 1375208960,1375210239,MQ 1375210240,1375210495,GP 1375210496,1375211263,MQ -1375211264,1375211519,FR -1375211520,1375213055,GP +1375211264,1375211775,FR +1375211776,1375213055,GP 1375213056,1375213311,FR -1375213312,1375215359,GP -1375215360,1375215615,BL -1375215616,1375215871,GF -1375215872,1375216127,FR -1375216128,1375216639,GF -1375216640,1375217663,FR +1375213312,1375214591,GP +1375214592,1375214847,FR +1375214848,1375215615,GP +1375215616,1375216639,GF +1375216640,1375216895,FR +1375216896,1375217151,GF +1375217152,1375217663,FR 1375217664,1375217919,GF 1375217920,1375218175,FR -1375218176,1375218687,GF -1375218688,1375218943,FR -1375218944,1375220735,GF +1375218176,1375220735,GF 1375220736,1375221759,FR 1375221760,1375222015,GF 1375222016,1375222783,FR @@ -20240,19 +21136,19 @@ 1375223040,1375223295,FR 1375223296,1375223551,GF 1375223552,1375224831,FR -1375224832,1375225087,MQ -1375225088,1375226111,FR -1375226112,1375226367,MQ +1375224832,1375225343,MQ +1375225344,1375225855,FR +1375225856,1375226367,MQ 1375226368,1375226623,FR -1375226624,1375227391,MQ -1375227392,1375227647,FR -1375227648,1375227903,MQ -1375227904,1375228415,FR -1375228416,1375228671,MQ -1375228672,1375229183,FR -1375229184,1375229439,MQ -1375229440,1375230719,FR -1375230720,1375230975,MQ +1375226624,1375228415,MQ +1375228416,1375228671,FR +1375228672,1375228927,MQ +1375228928,1375229183,FR +1375229184,1375229695,MQ +1375229696,1375229951,FR +1375229952,1375230207,MQ +1375230208,1375230463,FR +1375230464,1375230975,MQ 1375230976,1375231487,FR 1375231488,1375231743,MQ 1375231744,1375234047,FR @@ -20261,22 +21157,22 @@ 1375234560,1375234815,MQ 1375234816,1375235071,FR 1375235072,1375235583,MQ -1375235584,1375236095,FR -1375236096,1375236351,MQ -1375236352,1375237887,FR -1375237888,1375238143,MQ -1375238144,1375238655,FR -1375238656,1375238911,MQ -1375238912,1375239167,FR -1375239168,1375239423,MQ -1375239424,1375242495,FR -1375242496,1375242751,GP -1375242752,1375243007,FR -1375243008,1375243263,GP -1375243264,1375243775,FR -1375243776,1375244031,GP -1375244032,1375246079,FR -1375246080,1375246591,GP +1375235584,1375237119,FR +1375237120,1375237375,MQ +1375237376,1375237631,FR +1375237632,1375238399,MQ +1375238400,1375238655,FR +1375238656,1375239423,MQ +1375239424,1375241215,FR +1375241216,1375241471,GP +1375241472,1375242495,FR +1375242496,1375243263,GP +1375243264,1375243519,FR +1375243520,1375244031,GP +1375244032,1375244799,FR +1375244800,1375245311,GP +1375245312,1375245823,FR +1375245824,1375246591,GP 1375246592,1375247871,FR 1375247872,1375248383,GP 1375248384,1375250687,FR @@ -20284,11 +21180,7 @@ 1375251200,1375251711,FR 1375251712,1375252223,GP 1375252224,1375252735,FR -1375252736,1375253247,GP -1375253248,1375253503,FR -1375253504,1375253759,GP -1375253760,1375254015,FR -1375254016,1375254527,GP +1375252736,1375254527,GP 1375254528,1375255039,FR 1375255040,1375255295,GP 1375255296,1375255551,FR @@ -20297,15 +21189,17 @@ 1375256576,1375257599,RE 1375257600,1375258111,FR 1375258112,1375258623,RE -1375258624,1375260062,FR -1375260063,1375260063,RE -1375260064,1375260685,FR +1375258624,1375259647,FR +1375259648,1375260415,RE +1375260416,1375260685,FR 1375260686,1375260686,RE 1375260687,1375260927,FR 1375260928,1375262463,RE -1375262464,1375262975,FR -1375262976,1375263487,RE -1375263488,1375264255,FR +1375262464,1375262719,FR +1375262720,1375263487,RE +1375263488,1375263743,FR +1375263744,1375263999,RE +1375264000,1375264255,FR 1375264256,1375264511,RE 1375264512,1375264550,FR 1375264551,1375264551,RE @@ -20313,19 +21207,19 @@ 1375264728,1375264728,RE 1375264729,1375264767,FR 1375264768,1375265791,RE -1375265792,1375266303,FR -1375266304,1375266815,RE +1375265792,1375266047,FR +1375266048,1375266815,RE 1375266816,1375269119,FR 1375269120,1375269375,RE 1375269376,1375269631,FR -1375269632,1375270143,RE -1375270144,1375270399,FR -1375270400,1375270655,RE -1375270656,1375270911,FR -1375270912,1375271679,RE +1375269632,1375271679,RE 1375271680,1375271964,FR 1375271965,1375271965,RE -1375271966,1375731711,FR +1375271966,1375272191,FR +1375272192,1375272447,RE +1375272448,1375272703,FR +1375272704,1375272959,RE +1375272960,1375731711,FR 1375731712,1378877439,GB 1378877440,1379926015,IT 1379926016,1380188159,FR @@ -20344,7 +21238,8 @@ 1382072320,1382088703,RU 1382088704,1382105087,FR 1382105088,1382137855,DE -1382137856,1382154239,RU +1382137856,1382152191,RU +1382152192,1382154239,IR 1382154240,1382170623,FR 1382170624,1382187007,DE 1382187008,1382203391,ES @@ -20381,14 +21276,13 @@ 1382809600,1383071743,GB 1383071744,1383088127,RU 1383088128,1383096319,IS -1383096320,1383098879,GB +1383096320,1383096575,FR +1383096576,1383098879,GB 1383098880,1383099135,DE 1383099136,1383099163,GB 1383099164,1383099164,NL 1383099165,1383104511,GB -1383104512,1383108735,JE -1383108736,1383108863,GG -1383108864,1383112703,JE +1383104512,1383112703,JE 1383112704,1383114751,LB 1383114752,1383116799,GB 1383116800,1383120895,RU @@ -20536,7 +21430,9 @@ 1385267200,1385275391,SE 1385275392,1385283583,IT 1385283584,1385286143,DE -1385286144,1385290631,GB +1385286144,1385290288,GB +1385290289,1385290289,RE +1385290290,1385290631,GB 1385290632,1385290632,IS 1385290633,1385291343,GB 1385291344,1385291344,IS @@ -20600,9 +21496,29 @@ 1386438400,1386438655,FR 1386438656,1386448895,GB 1386448896,1386449151,IL -1386449152,1386449407,NL -1386449408,1386450943,IL -1386450944,1386479615,GB +1386449152,1386449343,NL +1386449344,1386449347,GB +1386449348,1386449359,NL +1386449360,1386449363,GB +1386449364,1386449367,BE +1386449368,1386449371,AU +1386449372,1386449375,AT +1386449376,1386449379,NL +1386449380,1386449383,CH +1386449384,1386449387,FR +1386449388,1386449391,NL +1386449392,1386449395,ES +1386449396,1386449399,PT +1386449400,1386449403,RU +1386449404,1386449407,DE +1386449408,1386449663,IL +1386449664,1386449919,HK +1386449920,1386450943,IL +1386450944,1386477567,GB +1386477568,1386477823,US +1386477824,1386478079,GB +1386478080,1386478335,US +1386478336,1386479615,GB 1386479616,1386545151,NO 1386545152,1386552319,DE 1386552320,1386553087,GB @@ -20653,9 +21569,13 @@ 1388581120,1388583167,FR 1388583168,1388583423,DZ 1388583424,1388584959,FR +1388587264,1388587455,BE 1388587456,1388587471,GB +1388587472,1388587519,BE 1388587520,1388587775,GB +1388588288,1388588543,GB 1388589056,1388589823,GB +1388590080,1388590335,GB 1388591104,1388591359,AU 1388593152,1388601343,RU 1388601344,1388609535,SE @@ -20666,11 +21586,13 @@ 1388642304,1388650495,FI 1388650496,1388658687,PL 1388658688,1388666879,GB -1388666880,1388667647,FR -1388667648,1388668159,RE +1388666880,1388667903,FR +1388667904,1388668159,RE 1388668160,1388671097,FR 1388671098,1388671098,RE -1388671099,1388671763,FR +1388671099,1388671231,FR +1388671232,1388671487,RE +1388671488,1388671763,FR 1388671764,1388671764,RE 1388671765,1388672244,FR 1388672245,1388672245,RE @@ -20682,10 +21604,13 @@ 1388675584,1388676095,DE 1388677632,1388677887,NL 1388678144,1388679167,DE +1388679168,1388679423,FR 1388681216,1388683263,DE 1388683264,1388683903,CH 1388683904,1388683919,DE -1388683920,1388685599,CH +1388683920,1388684080,CH +1388684081,1388684081,AT +1388684082,1388685599,CH 1388685600,1388685631,GB 1388685632,1388688127,CH 1388688128,1388688159,NL @@ -20763,11 +21688,19 @@ 1389166592,1389199359,PS 1389199360,1389199871,AE 1389199872,1389200159,US -1389200160,1389218815,AE +1389200160,1389215743,AE +1389215744,1389215999,DE +1389216000,1389217023,AE +1389217024,1389217535,US +1389217536,1389218815,AE 1389218816,1389219839,AF -1389219840,1389228415,AE +1389219840,1389223935,AE +1389223936,1389224191,DE +1389224192,1389228415,AE 1389228416,1389228479,LB -1389228480,1389232127,AE +1389228480,1389231359,AE +1389231360,1389231615,DE +1389231616,1389232127,AE 1389232128,1389264895,DE 1389264896,1389265151,TZ 1389265152,1389266943,GB @@ -20791,7 +21724,8 @@ 1389445120,1389461503,RU 1389461504,1389477887,SE 1389477888,1389494271,BY -1389494272,1389510655,DE +1389494272,1389494527,RO +1389494528,1389510655,DE 1389510656,1389527039,NL 1389527040,1389543423,RO 1389543424,1389576191,DE @@ -20822,7 +21756,9 @@ 1389789184,1389805567,PL 1389805568,1389806591,DE 1389806592,1389806847,SA -1389806848,1389817855,DE +1389806848,1389817603,DE +1389817604,1389817604,NO +1389817605,1389817855,DE 1389817856,1389819903,GB 1389819904,1389821951,DE 1389821952,1389838335,NL @@ -20966,10 +21902,11 @@ 1401544704,1401546751,GB 1401546752,1401548799,IT 1401548800,1401550847,FR -1401550848,1401551103,JE -1401551104,1401551615,GB -1401551616,1401552639,JE -1401552640,1401552895,GB +1401550848,1401551359,JE +1401551360,1401551615,GB +1401551616,1401552383,JE +1401552384,1401552639,GB +1401552640,1401552895,JE 1401552896,1401554943,NL 1401554944,1401556991,IE 1401556992,1401563135,GB @@ -21050,6 +21987,13 @@ 1401939968,1401942015,UA 1401942016,1401942047,CZ 1401942528,1401943039,GB +1401943048,1401943055,IT +1401943056,1401943063,ES +1401943064,1401943067,NL +1401943072,1401943079,HU +1401943080,1401943087,FR +1401943096,1401943103,DE +1401943104,1401943111,HU 1401943552,1401943807,US 1401944064,1401946111,BG 1401946112,1401962495,FR @@ -21078,9 +22022,9 @@ 1402273792,1402277631,RU 1402277632,1402277887,TJ 1402277888,1402290175,RU -1402290176,1402306047,NL -1402306048,1402306303,DE -1402306304,1402306559,NL +1402290176,1402306204,NL +1402306205,1402306205,DE +1402306206,1402306559,NL 1402306560,1402322943,IT 1402322944,1402339327,RU 1402339328,1402355711,CH @@ -21098,7 +22042,9 @@ 1402433601,1402433601,FR 1402433602,1402437631,GB 1402437632,1402454015,DK -1402454016,1402470399,GB +1402454016,1402455551,GB +1402455552,1402455807,US +1402455808,1402470399,GB 1402470400,1402994687,FR 1402994688,1403256831,NL 1403256832,1403322367,AT @@ -21164,9 +22110,9 @@ 1404043264,1404051455,EE 1404051456,1404059647,HR 1404059648,1404076031,NO -1404076032,1404077055,SE -1404077056,1404081151,LV -1404081152,1404082175,SE +1404076032,1404076543,SE +1404076544,1404081663,LV +1404081664,1404082175,SE 1404082176,1404083199,DE 1404083200,1404084223,SE 1404084224,1404092415,NO @@ -21202,11 +22148,14 @@ 1404215296,1404219391,LV 1404219392,1404220415,SE 1404220416,1404221439,EE -1404221440,1404227583,SE -1404227584,1404231679,LV +1404221440,1404222463,SE +1404222464,1404222975,LV +1404222976,1404227071,SE +1404227072,1404231679,LV 1404231680,1404232191,SE 1404232192,1404232703,NO -1404232704,1404234751,SE +1404232704,1404233215,LV +1404233216,1404234751,SE 1404234752,1404239871,HR 1404239872,1404305407,SE 1404305408,1404313599,EE @@ -21246,8 +22195,8 @@ 1404780544,1404788735,SE 1404788736,1404796927,NL 1404796928,1404801023,EE -1404801024,1404803583,SE -1404803584,1404804095,LV +1404801024,1404803071,SE +1404803072,1404804095,LV 1404804096,1404805119,SE 1404805120,1404813311,AT 1404813312,1404815871,EE @@ -21280,103 +22229,77 @@ 1405813760,1405814271,FR 1405814272,1405814527,MQ 1405814528,1405814783,FR -1405814784,1405815295,MQ -1405815296,1405816319,FR -1405816320,1405817343,MQ -1405817344,1405817599,FR -1405817600,1405819903,MQ -1405819904,1405820159,FR -1405820160,1405821439,MQ +1405814784,1405815551,MQ +1405815552,1405816319,FR +1405816320,1405817087,MQ +1405817088,1405817599,FR +1405817600,1405821439,MQ 1405821440,1405821695,FR -1405821696,1405821951,MQ -1405821952,1405822207,FR -1405822208,1405823231,MQ -1405823232,1405823487,FR -1405823488,1405823743,MQ +1405821696,1405823743,MQ 1405823744,1405823999,FR -1405824000,1405825535,MQ -1405825536,1405826047,FR -1405826048,1405826559,MQ -1405826560,1405826815,FR -1405826816,1405827583,MQ +1405824000,1405825791,MQ +1405825792,1405826047,FR +1405826048,1405827583,MQ 1405827584,1405827839,FR 1405827840,1405828351,MQ 1405828352,1405828607,FR -1405828608,1405828863,MQ -1405828864,1405829119,FR -1405829120,1405829375,MQ -1405829376,1405829631,FR -1405829632,1405830143,MQ +1405828608,1405829375,MQ +1405829376,1405829887,FR +1405829888,1405830143,MQ 1405830144,1405830399,FR 1405830400,1405830911,MQ 1405830912,1405831167,FR -1405831168,1405834495,MQ -1405834496,1405835007,FR -1405835008,1405835519,MQ -1405835520,1405835775,FR -1405835776,1405836031,MQ +1405831168,1405834751,MQ +1405834752,1405835007,FR +1405835008,1405836031,MQ 1405836032,1405836287,FR 1405836288,1405836543,MQ -1405836544,1405837311,FR -1405837312,1405837567,MQ -1405837568,1405837823,FR +1405836544,1405837823,FR 1405837824,1405838079,MQ 1405838080,1405838335,FR -1405838336,1405839103,MQ -1405839104,1405839359,FR -1405839360,1405840383,MQ -1405840384,1405840895,FR -1405840896,1405846015,MQ +1405838336,1405840639,MQ +1405840640,1405840895,FR +1405840896,1405842431,MQ +1405842432,1405842687,FR +1405842688,1405846015,MQ 1405846016,1405846271,FR 1405846272,1405846783,MQ 1405846784,1405847039,FR 1405847040,1405847551,MQ 1405847552,1405847807,FR -1405847808,1405848063,MQ -1405848064,1405849599,FR -1405849600,1405850879,MQ -1405850880,1405851391,FR -1405851392,1405851647,MQ -1405851648,1405851903,FR -1405851904,1405852159,MQ +1405847808,1405848319,MQ +1405848320,1405849599,FR +1405849600,1405851135,MQ +1405851136,1405851391,FR +1405851392,1405852159,MQ 1405852160,1405852415,FR 1405852416,1405852927,MQ 1405852928,1405853439,FR 1405853440,1405853695,MQ 1405853696,1405853951,FR -1405853952,1405854207,MQ -1405854208,1405854975,FR -1405854976,1405855743,MQ -1405855744,1405855999,FR -1405856000,1405858047,MQ -1405858048,1405858559,FR -1405858560,1405860607,MQ +1405853952,1405854463,MQ +1405854464,1405854975,FR +1405854976,1405858047,MQ +1405858048,1405858303,FR +1405858304,1405860607,MQ 1405860608,1405860863,FR 1405860864,1405861887,MQ 1405861888,1405862399,FR -1405862400,1405862655,MQ -1405862656,1405863423,FR -1405863424,1405864191,MQ -1405864192,1405866495,FR +1405862400,1405864191,MQ +1405864192,1405865983,FR +1405865984,1405866239,MQ +1405866240,1405866495,FR 1405866496,1405867519,MQ -1405867520,1405868031,FR -1405868032,1405868287,MQ -1405868288,1405868799,FR -1405868800,1405869055,MQ +1405867520,1405867775,FR +1405867776,1405869055,MQ 1405869056,1405869311,FR -1405869312,1405870591,MQ -1405870592,1405870847,FR -1405870848,1405871103,MQ -1405871104,1405871359,FR -1405871360,1405872127,MQ -1405872128,1405872639,FR -1405872640,1405873919,MQ -1405873920,1405874175,FR -1405874176,1405874431,MQ +1405869312,1405874431,MQ 1405874432,1405874687,FR -1405874688,1405876479,MQ -1405876480,1405876735,FR -1405876736,1405878271,MQ +1405874688,1405874943,MQ +1405874944,1405875199,FR +1405875200,1405877503,MQ +1405877504,1405877759,FR +1405877760,1405878271,MQ 1405878272,1406140415,FR 1406140416,1406205951,CZ 1406205952,1406271487,SE @@ -21409,17 +22332,15 @@ 1406793844,1406793847,GB 1406793848,1406794751,ES 1406794752,1406795775,NL -1406795776,1406796799,GB -1406796800,1406797311,IM -1406797312,1406803711,GB +1406795776,1406796543,GB +1406796544,1406796799,IM +1406796800,1406803711,GB 1406803712,1406803967,IM 1406803968,1406812159,DE 1406812160,1406820351,SE 1406820352,1406828543,PL 1406828544,1406836735,GB -1406836736,1406837247,AT -1406837248,1406837503,GB -1406837504,1406844927,AT +1406836736,1406844927,AT 1406844928,1406853119,MD 1406853120,1406861311,UA 1406861312,1406869503,RU @@ -21477,7 +22398,9 @@ 1407549440,1407582207,RU 1407582208,1407614975,PL 1407614976,1407680511,ES -1407680512,1407686119,GB +1407680512,1407681023,GB +1407681024,1407681087,ES +1407681088,1407686119,GB 1407686120,1407686123,CH 1407686124,1407686127,DE 1407686128,1407686131,FR @@ -21509,13 +22432,7 @@ 1408106496,1408172031,PL 1408172032,1408237567,RU 1408237568,1408270335,CZ -1408270336,1408283135,PT -1408283136,1408283197,GB -1408283198,1408283198,PT -1408283199,1408283329,GB -1408283330,1408283330,PT -1408283331,1408283391,GB -1408283392,1408303103,PT +1408270336,1408303103,PT 1408303104,1408335871,LV 1408335872,1408368639,SE 1408368640,1408376831,NO @@ -21633,8 +22550,12 @@ 1410711552,1410719743,BG 1410719744,1410727935,RU 1410727936,1410736127,BG -1410736128,1410744319,RS -1410744320,1410752511,FR +1410736128,1410742015,RS +1410742016,1410742271,XK +1410742272,1410744319,RS +1410744320,1410747391,FR +1410747392,1410747647,GF +1410747648,1410752511,FR 1410752512,1410760703,NL 1410760704,1410768895,RU 1410768896,1410777087,GB @@ -21680,12 +22601,9 @@ 1411842048,1411850239,NL 1411850240,1411858431,FR 1411858432,1411870719,DE -1411871744,1411871999,GB -1411872057,1411872057,GB -1411872160,1411872161,GB -1411872196,1411872199,GB -1411872228,1411872231,GB -1411872244,1411872255,GB +1411871744,1411871771,GB +1411871772,1411871775,FR +1411871776,1411872255,GB 1411872768,1411874815,NL 1411874816,1411876863,RU 1411878912,1411880959,CH @@ -21707,7 +22625,9 @@ 1411919872,1411921919,DE 1411922432,1411923967,GB 1411923968,1411940351,BG -1411940352,1411973119,PL +1411940352,1411961611,PL +1411961612,1411961612,IE +1411961613,1411973119,PL 1411973120,1411999743,SI 1411999744,1412001023,BA 1412001024,1412002815,SI @@ -21737,10 +22657,10 @@ 1412412416,1412412671,RO 1412412672,1412413439,RU 1412413440,1412413951,RO -1412413952,1412414719,RU -1412414720,1412414975,RO -1412414976,1412415487,RU -1412415488,1412419583,AE +1412413952,1412415487,RU +1412415488,1412417023,AE +1412417024,1412417279,IR +1412417280,1412419583,AE 1412419584,1412427775,IR 1412427776,1412429823,AE 1412429824,1412431871,IR @@ -21771,13 +22691,13 @@ 1412907008,1412923391,SE 1412923392,1412939775,FR 1412939776,1412956159,CH -1412956160,1413480447,DE +1412956160,1413455940,DE +1413455941,1413455941,US +1413455942,1413480447,DE 1413480448,1414004735,IN 1414004736,1414039551,CH -1414039552,1414039679,DE -1414039680,1414040319,CH -1414040320,1414040575,DE -1414040576,1414069218,CH +1414039552,1414040063,DE +1414040064,1414069218,CH 1414069219,1414069219,AT 1414069220,1414095871,CH 1414095872,1414096127,DE @@ -21799,9 +22719,7 @@ 1416953856,1417019391,RO 1417019392,1417150463,DE 1417150464,1417674751,ES -1417674752,1420133375,DE -1420133376,1420133631,LU -1420133632,1421869055,DE +1417674752,1421869055,DE 1421869056,1422393343,BE 1422393344,1422413567,DE 1422413568,1422413695,AT @@ -21831,13 +22749,14 @@ 1422907392,1422911487,NL 1422911488,1422915583,GB 1422916608,1422916863,GB -1422917120,1422917343,GB 1422917344,1422917375,NL 1422917632,1423441919,NO 1423441920,1423704063,SE 1423704064,1423966207,IT 1423966208,1424097279,HU -1424097280,1424228351,CH +1424097280,1424163583,CH +1424163584,1424163839,DE +1424163840,1424228351,CH 1424228352,1424359423,IL 1424359424,1424490495,FI 1424490496,1424503711,ES @@ -21845,17 +22764,21 @@ 1424503716,1424523263,ES 1424523264,1424556031,RO 1424556032,1424588799,EG -1424588800,1424595726,GB +1424588800,1424592639,GB +1424592640,1424592895,FR +1424592896,1424595726,GB 1424595727,1424595727,IT 1424595728,1424595743,GB 1424595744,1424595751,IT 1424595752,1424597069,GB 1424597070,1424597070,CZ -1424597071,1424601887,GB +1424597071,1424600575,GB +1424600576,1424600831,FR +1424600832,1424601887,GB 1424601888,1424601903,NL -1424601904,1424603023,GB -1424603024,1424603039,US -1424603040,1424604975,GB +1424601904,1424602879,GB +1424602880,1424603135,US +1424603136,1424604975,GB 1424604976,1424604991,NL 1424604992,1424607743,GB 1424607744,1424607775,DE @@ -22006,11 +22929,7 @@ 1426660659,1426669567,RO 1426669568,1426685951,IR 1426685952,1426702335,TJ -1426702336,1426702591,LV -1426702592,1426702847,RU -1426702848,1426706687,LV -1426706688,1426706943,GB -1426706944,1426716159,LV +1426702336,1426716159,LV 1426716160,1426716415,RU 1426716416,1426718719,LV 1426718720,1426731007,SI @@ -22228,8 +23147,7 @@ 1433608704,1433610239,GB 1433610240,1433612287,US 1433612288,1433614335,GB -1433614336,1433614591,NL -1433614592,1433615027,DE +1433614336,1433615027,DE 1433615028,1433615028,GB 1433615029,1433615359,DE 1433615360,1433615615,FR @@ -22278,9 +23196,9 @@ 1433860096,1433862143,DE 1433862144,1433864191,CH 1433864192,1433866239,HU -1433866240,1433867521,NL -1433867522,1433867522,GB -1433867523,1433868287,NL +1433866240,1433867519,NL +1433867520,1433867775,GB +1433867776,1433868287,NL 1433868288,1433870335,GB 1433870336,1433872383,TR 1433872384,1433874431,IT @@ -22313,8 +23231,8 @@ 1434451968,1434517503,PL 1434517504,1434550271,DK 1434550272,1434583039,SA -1434583040,1434595583,BG -1434595584,1434596351,MK +1434583040,1434595839,BG +1434595840,1434596351,MK 1434596352,1434611711,BG 1434611712,1434613759,MK 1434613760,1434615807,BG @@ -22352,10 +23270,8 @@ 1436444672,1436446719,BE 1436446720,1436450815,FR 1436450816,1436452863,BH -1436452864,1436453119,GB -1436453120,1436453314,DE -1436453315,1436453315,GB -1436453316,1436453631,DE +1436452864,1436453375,GB +1436453376,1436453631,DE 1436453632,1436454911,GB 1436454912,1436456959,AZ 1436456960,1436459007,GB @@ -22401,7 +23317,9 @@ 1436545024,1436547071,DE 1436547072,1436549119,GB 1436549120,1436680191,CZ -1436680192,1436811263,SK +1436680192,1436745727,SK +1436745728,1436745728,CZ +1436745729,1436811263,SK 1436811264,1437073407,NO 1437073408,1437335551,FR 1437335552,1437597695,RU @@ -22474,7 +23392,9 @@ 1439105024,1439121407,AT 1439121408,1439154175,DE 1439154176,1439170559,GB -1439170560,1439236095,NO +1439170560,1439231999,NO +1439232000,1439232255,AU +1439232256,1439236095,NO 1439236096,1439301631,BE 1439301632,1439305727,RU 1439305728,1439309823,DK @@ -22494,8 +23414,25 @@ 1439372032,1439372287,TR 1439372288,1439372543,IT 1439372544,1439372799,JP -1439372800,1439373055,MT -1439373056,1439373311,NL +1439372800,1439372815,MT +1439372816,1439372831,AD +1439372832,1439372847,CY +1439372848,1439372863,AM +1439372864,1439372879,BY +1439372880,1439372895,PK +1439372896,1439372911,CZ +1439372912,1439372927,GR +1439372928,1439372943,IS +1439372944,1439372959,IM +1439372960,1439372975,JE +1439372976,1439372991,XK +1439372992,1439373007,MK +1439373008,1439373008,MC +1439373009,1439373023,MT +1439373024,1439373039,ME +1439373040,1439373040,SC +1439373041,1439373055,MT +1439373056,1439373311,IT 1439373312,1439373567,AE 1439373568,1439374335,NL 1439374336,1439375359,IT @@ -22505,14 +23442,18 @@ 1439376128,1439376383,SA 1439376384,1439377407,CN 1439377408,1439378431,IT -1439378432,1439383551,NL +1439378432,1439378687,NL +1439378688,1439378943,CA +1439378944,1439383551,NL 1439383552,1439399935,FR 1439399936,1439432703,DK 1439432704,1439437823,RO 1439437824,1439438335,FR 1439438336,1439438847,RO 1439438848,1439439359,FR -1439439360,1439440383,RO +1439439360,1439439615,RO +1439439616,1439439871,PL +1439439872,1439440383,RO 1439440384,1439440895,IR 1439440896,1439441919,RO 1439441920,1439442943,ES @@ -22604,7 +23545,8 @@ 1440546816,1440579583,NO 1440579584,1440645119,PL 1440645120,1440653311,GB -1440653312,1440665599,RS +1440653312,1440663551,RS +1440663552,1440665599,FR 1440665600,1440669695,DE 1440669696,1440671743,NL 1440671744,1440672767,EE @@ -22787,7 +23729,7 @@ 1449726720,1449727999,RO 1449728000,1449728255,MD 1449728256,1449734143,RO -1449734144,1449736191,IT +1449734144,1449736191,DE 1449736192,1449738239,MD 1449738240,1449742335,RO 1449742336,1449744383,MD @@ -22832,7 +23774,8 @@ 1449793280,1449793535,NL 1449793536,1449794047,IR 1449794048,1449794303,PH -1449794304,1449810943,RO +1449794304,1449810687,RO +1449810688,1449810943,PL 1449810944,1449811199,MD 1449811200,1449811455,BG 1449811456,1449811967,GB @@ -22939,7 +23882,9 @@ 1450442752,1450704895,CH 1450704896,1451229183,RO 1451229184,1455423487,GB -1455423488,1459617791,FR +1455423488,1456726527,FR +1456726528,1456726783,RE +1456726784,1459617791,FR 1459617792,1461714943,IT 1461714944,1462763519,IE 1462763520,1463812095,DK @@ -22960,7 +23905,9 @@ 1465974784,1466007551,HU 1466007552,1466040319,BG 1466040320,1466073087,EE -1466073088,1466097663,FR +1466073088,1466086016,FR +1466086017,1466086017,ES +1466086018,1466097663,FR 1466097664,1466099711,ES 1466099712,1466101759,PL 1466101760,1466103807,DE @@ -23035,7 +23982,9 @@ 1467473920,1467482111,RU 1467482112,1467613183,BG 1467613184,1467744255,DE -1467744256,1467875327,GB +1467744256,1467777023,GB +1467777024,1467793407,ES +1467793408,1467875327,GB 1467875328,1467940863,BG 1467940864,1468006399,GB 1468006400,1472200703,DE @@ -23052,7 +24001,9 @@ 1472724992,1472856063,AE 1472856064,1472987135,GR 1472987136,1473249279,PL -1473249280,1473773567,NL +1473249280,1473587455,NL +1473587456,1473587711,US +1473587712,1473773567,NL 1473773568,1474297855,ES 1474297856,1474330623,GB 1474330624,1474396159,RU @@ -23150,8 +24101,11 @@ 1475260416,1475262463,FR 1475262464,1475266559,DE 1475266560,1475268607,GB -1475268608,1475270655,RS -1475270656,1475272703,GB +1475268608,1475269375,XK +1475269376,1475270655,RS +1475270656,1475271423,GB +1475271424,1475271551,US +1475271552,1475272703,GB 1475272704,1475274751,BE 1475274752,1475276799,RU 1475276800,1475278847,ES @@ -23171,7 +24125,8 @@ 1475309568,1475311615,LT 1475311616,1475313663,FI 1475313664,1475315711,DE -1475315712,1475317759,US +1475315712,1475317503,US +1475317504,1475317759,DE 1475317760,1475319807,RU 1475319808,1475321855,BG 1475321856,1475323903,RO @@ -23206,9 +24161,9 @@ 1475575808,1475592191,AT 1475592192,1475608575,GB 1475608576,1475624959,RU -1475624960,1475625727,JE -1475625728,1475625855,GG -1475625856,1475638783,JE +1475624960,1475638399,JE +1475638400,1475638527,GG +1475638528,1475638783,JE 1475638784,1475639039,GB 1475639040,1475639391,JE 1475639392,1475639399,GB @@ -23224,11 +24179,7 @@ 1475641344,1475657727,UA 1475657728,1475674111,SK 1475674112,1475690495,DE -1475690496,1475693055,CH -1475693056,1475693069,DE -1475693070,1475693070,CH -1475693071,1475693311,DE -1475693312,1475706879,CH +1475690496,1475706879,CH 1475706880,1475723263,RU 1475723264,1475723839,GB 1475723840,1475723903,RU @@ -23247,8 +24198,10 @@ 1475724871,1475724927,GB 1475724928,1475725183,RU 1475725184,1475725311,GB -1475725312,1475725439,RU -1475725440,1475728639,GB +1475725312,1475725567,RU +1475725568,1475726591,GB +1475726592,1475726847,RU +1475726848,1475728639,GB 1475728640,1475728767,PL 1475728768,1475729407,GB 1475729408,1475729535,UA @@ -23297,7 +24250,21 @@ 1475969024,1475977215,CZ 1475977216,1475985407,SE 1475985408,1476009983,RU -1476009984,1476018175,RS +1476009984,1476010047,RS +1476010048,1476010111,XK +1476010112,1476011327,RS +1476011328,1476012031,XK +1476012032,1476012095,RS +1476012096,1476012287,XK +1476012288,1476013055,RS +1476013056,1476013823,XK +1476013824,1476014079,RS +1476014080,1476014127,XK +1476014128,1476014135,RS +1476014136,1476014591,XK +1476014592,1476015871,RS +1476015872,1476016127,XK +1476016128,1476018175,RS 1476018176,1476026367,IT 1476026368,1476034559,BA 1476034560,1476042751,NL @@ -23351,15 +24318,7 @@ 1476378624,1476386815,KZ 1476386816,1476395007,RU 1476395008,1478492159,ES -1478492160,1478772671,IT -1478772672,1478772675,SI -1478772676,1478912623,IT -1478912624,1478912631,SI -1478912632,1479296487,IT -1479296488,1479296495,SI -1479296496,1479421151,IT -1479421152,1479421159,SI -1479421160,1480589311,IT +1478492160,1480589311,IT 1480589312,1481637887,DE 1481637888,1481646079,SE 1481646080,1481654271,RU @@ -23374,9 +24333,7 @@ 1481719808,1481727999,CZ 1481728000,1481736191,IE 1481736192,1481741055,GG -1481741056,1481741823,GB -1481741824,1481742079,GG -1481742080,1481744383,GB +1481741056,1481744383,GB 1481744384,1481752575,IT 1481752576,1481760767,RU 1481760768,1481768959,UA @@ -23389,7 +24346,9 @@ 1481818112,1481826303,ES 1481826304,1481834495,DE 1481834496,1481842687,GL -1481842688,1481850879,SE +1481842688,1481843007,SE +1481843008,1481843039,NO +1481843040,1481850879,SE 1481850880,1481859071,DK 1481859072,1481867263,GB 1481867264,1481875455,SE @@ -23402,7 +24361,9 @@ 1481908224,1481916415,NO 1481916416,1481924607,ES 1481924608,1481932799,SA -1481932800,1481940991,DE +1481932800,1481933567,DE +1481933568,1481933599,GB +1481933600,1481940991,DE 1481940992,1481949183,NO 1481949184,1481957375,RU 1481957376,1481965567,SE @@ -23549,7 +24510,9 @@ 1489665024,1489666047,IT 1489666048,1489674239,GB 1489674240,1489676287,NL -1489676288,1489692415,GB +1489676288,1489688575,GB +1489688576,1489688831,IL +1489688832,1489692415,GB 1489692416,1489692431,AU 1489692432,1489692447,GB 1489692448,1489692463,AU @@ -23631,11 +24594,10 @@ 1491075072,1493172223,TR 1493172224,1493303295,DE 1493303296,1493431551,FR -1493431552,1493432319,GP -1493432320,1493433087,FR -1493433088,1493433343,MQ -1493433344,1493434111,FR -1493434112,1493434367,MQ +1493431552,1493431807,GP +1493431808,1493432063,FR +1493432064,1493432319,GP +1493432320,1493434367,FR 1493434368,1493565439,SA 1493565440,1493696511,ES 1493696512,1493958655,NO @@ -23644,15 +24606,11 @@ 1494221824,1494222335,RE 1494222336,1494222591,FR 1494222592,1494222847,RE -1494222848,1494223103,FR -1494223104,1494223359,RE -1494223360,1494224127,FR -1494224128,1494224383,RE -1494224384,1494224639,FR +1494222848,1494223871,FR +1494223872,1494224127,RE +1494224128,1494224639,FR 1494224640,1494224895,RE -1494224896,1494227199,FR -1494227200,1494227711,GP -1494227712,1494228991,FR +1494224896,1494228991,FR 1494228992,1494237183,RU 1494237184,1494245375,IE 1494245376,1494253567,RU @@ -23820,7 +24778,7 @@ 1495333632,1495333887,RO 1495333888,1495335935,MD 1495335936,1495336447,RO -1495336448,1495336959,NL +1495336448,1495336959,GB 1495336960,1495339007,RO 1495339008,1495339263,DE 1495339264,1495339519,MD @@ -23844,7 +24802,9 @@ 1495362560,1495363583,ES 1495363584,1495364607,RO 1495364608,1495364863,GB -1495364864,1495367679,RO +1495364864,1495365119,PT +1495365120,1495365375,SE +1495365376,1495367679,RO 1495367680,1495368191,IR 1495368192,1495369215,RO 1495369216,1495369471,GB @@ -23993,13 +24953,20 @@ 1495566336,1495566591,GB 1495566592,1495566847,RO 1495566848,1495567359,GB -1495567360,1495571455,RO +1495567360,1495567871,RO +1495567872,1495568127,IE +1495568128,1495571455,RO 1495571456,1495572479,MD 1495572480,1495576575,RO 1495576576,1495580671,IR 1495580672,1495581183,RO 1495581184,1495581695,IR -1495581696,1495589375,RO +1495581696,1495584767,RO +1495584768,1495585791,IT +1495585792,1495586815,FR +1495586816,1495587839,DE +1495587840,1495589119,RO +1495589120,1495589375,FI 1495589376,1495589887,IR 1495589888,1495596031,RO 1495596032,1495596543,IR @@ -24049,15 +25016,18 @@ 1495683072,1495687167,IR 1495687168,1495688703,RO 1495688704,1495689215,IR -1495689216,1495700308,RO -1495700309,1495700309,GB -1495700310,1495723519,RO +1495689216,1495699455,RO +1495699456,1495700479,GB +1495700480,1495701503,FR +1495701504,1495723519,RO 1495723520,1495724031,FR 1495724032,1495724543,RO 1495724544,1495725055,IR 1495725056,1495732223,RO 1495732224,1495734271,ES -1495734272,1495745791,RO +1495734272,1495736319,RO +1495736320,1495744511,ES +1495744512,1495745791,RO 1495745792,1495746047,GB 1495746048,1495747583,RO 1495747584,1495748607,MD @@ -24122,7 +25092,9 @@ 1495820800,1495821311,IR 1495821312,1495821823,DE 1495821824,1495822335,IR -1495822336,1495826431,RO +1495822336,1495823359,IT +1495823360,1495824383,DE +1495824384,1495826431,IT 1495826432,1495826943,IR 1495826944,1495827967,RO 1495827968,1495828479,DE @@ -24150,7 +25122,9 @@ 1495866112,1495866879,GB 1495866880,1495867391,RO 1495867392,1495867903,IR -1495867904,1495871743,RO +1495867904,1495869439,RO +1495869440,1495870463,IR +1495870464,1495871743,RO 1495871744,1495872511,GB 1495872512,1495874047,RO 1495874048,1495874559,IR @@ -24186,7 +25160,9 @@ 1495961088,1495963135,RO 1495963136,1495963647,IR 1495963648,1495964415,GB -1495964416,1495967743,RO +1495964416,1495965695,RO +1495965696,1495966719,PL +1495966720,1495967743,RO 1495967744,1495968767,NL 1495968768,1495970815,RO 1495970816,1495971839,MD @@ -24237,7 +25213,9 @@ 1496057856,1496058111,DE 1496058112,1496066815,RO 1496066816,1496067071,QA -1496067072,1496073983,RO +1496067072,1496072383,RO +1496072384,1496072447,ES +1496072448,1496073983,RO 1496073984,1496074239,ES 1496074240,1496078335,RO 1496078336,1496079359,MD @@ -24294,13 +25272,12 @@ 1496197120,1496197631,MD 1496197632,1496198143,RO 1496198144,1496198655,IR -1496198656,1496198911,RO 1496198912,1496199167,GB 1496199168,1496202239,RO 1496202240,1496202751,IR 1496202752,1496203263,RO -1496203264,1496205311,IT -1496205312,1496210943,RO +1496203264,1496207359,IT +1496207360,1496210943,RO 1496210944,1496211455,IR 1496211456,1496213503,RO 1496213504,1496215551,IT @@ -24326,7 +25303,7 @@ 1496276992,1496285183,RO 1496285184,1496293375,IR 1496293376,1496295423,RO -1496295424,1496297471,GB +1496295424,1496297471,PL 1496297472,1496299519,MD 1496299520,1496301567,SE 1496301568,1496302591,RO @@ -24431,9 +25408,7 @@ 1502609408,1502625791,DE 1502625792,1502642175,SA 1502642176,1502658559,IR -1502658560,1502665983,AT -1502665984,1502666239,SK -1502666240,1502674943,AT +1502658560,1502674943,AT 1502674944,1502691327,DE 1502691328,1502707711,GB 1502707712,1502715903,RU @@ -24708,11 +25683,11 @@ 1504150272,1504150527,DE 1504150528,1504151039,GB 1504151040,1504151295,FR -1504151296,1504152575,GB -1504152576,1504152831,IE -1504152832,1504154623,GB +1504151296,1504154623,GB 1504154624,1504155647,IE -1504155648,1504247807,GB +1504155648,1504173055,GB +1504173056,1504173311,IE +1504173312,1504247807,GB 1504247808,1504313343,RU 1504313344,1504378879,FR 1504378880,1504444415,PL @@ -24847,7 +25822,9 @@ 1506459208,1506459247,BE 1506459248,1506459295,GB 1506459296,1506459327,BE -1506459328,1506459968,GB +1506459328,1506459763,GB +1506459764,1506459767,FR +1506459768,1506459968,GB 1506459969,1506459969,FR 1506459970,1506460151,GB 1506460152,1506460159,FR @@ -25005,7 +25982,15 @@ 1508753408,1508769791,KG 1508769792,1508786175,PL 1508786176,1508802559,DE -1508802560,1508818943,GB +1508802560,1508807231,GB +1508807232,1508807247,CZ +1508807248,1508811191,GB +1508811192,1508811195,NL +1508811196,1508812519,GB +1508812520,1508812527,CZ +1508812528,1508817407,GB +1508817408,1508817663,CZ +1508817664,1508818943,GB 1508818944,1508830719,RO 1508830720,1508831487,SK 1508831488,1508835327,RO @@ -25090,94 +26075,80 @@ 1509941248,1509947391,SE 1509947392,1509949439,NL 1509949440,1510604799,FR -1510604800,1510605311,RE -1510605312,1510605823,FR -1510605824,1510607615,RE -1510607616,1510607871,FR -1510607872,1510608383,RE -1510608384,1510608639,FR -1510608640,1510609663,RE +1510604800,1510605567,RE +1510605568,1510606079,FR +1510606080,1510606591,RE +1510606592,1510606847,FR +1510606848,1510609663,RE 1510609664,1510609919,FR 1510609920,1510611199,RE 1510611200,1510611711,FR 1510611712,1510614271,RE -1510614272,1510614783,FR -1510614784,1510615551,RE +1510614272,1510614527,FR +1510614528,1510615551,RE 1510615552,1510615807,FR 1510615808,1510616063,RE 1510616064,1510616319,FR -1510616320,1510617087,RE -1510617088,1510617343,FR -1510617344,1510617599,RE +1510616320,1510617599,RE 1510617600,1510617855,FR 1510617856,1510619647,RE 1510619648,1510620159,FR -1510620160,1510623743,RE -1510623744,1510623999,FR -1510624000,1510624511,RE +1510620160,1510620415,RE +1510620416,1510620671,FR +1510620672,1510624511,RE 1510624512,1510624767,FR 1510624768,1510625279,RE 1510625280,1510626047,FR -1510626048,1510628351,RE -1510628352,1510628607,FR -1510628608,1510629119,RE +1510626048,1510626303,RE +1510626304,1510626559,FR +1510626560,1510628351,RE +1510628352,1510628863,FR +1510628864,1510629119,RE 1510629120,1510629375,FR 1510629376,1510630143,RE -1510630144,1510630655,FR -1510630656,1510631167,RE -1510631168,1510631423,FR -1510631424,1510631935,RE -1510631936,1510632447,FR -1510632448,1510633983,RE -1510633984,1510634239,FR -1510634240,1510635263,RE -1510635264,1510635716,FR +1510630144,1510630399,FR +1510630400,1510631423,RE +1510631424,1510631679,FR +1510631680,1510631935,RE +1510631936,1510632191,FR +1510632192,1510635519,RE +1510635520,1510635716,FR 1510635717,1510635717,RE -1510635718,1510637823,FR -1510637824,1510638079,RE -1510638080,1510638335,FR -1510638336,1510638591,RE +1510635718,1510635775,FR +1510635776,1510638591,RE 1510638592,1510639103,FR -1510639104,1510642687,RE +1510639104,1510640383,RE +1510640384,1510640639,FR +1510640640,1510642687,RE 1510642688,1510642943,FR 1510642944,1510643455,RE 1510643456,1510643711,FR 1510643712,1510644991,RE 1510644992,1510645247,FR 1510645248,1510646783,RE -1510646784,1510647551,FR -1510647552,1510648063,RE -1510648064,1510648319,FR -1510648320,1510648575,RE -1510648576,1510648831,FR -1510648832,1510649855,RE -1510649856,1510650111,FR -1510650112,1510651135,RE -1510651136,1510651647,FR -1510651648,1510652927,RE -1510652928,1510653183,FR -1510653184,1510654463,RE +1510646784,1510647039,FR +1510647040,1510654463,RE 1510654464,1510654719,FR 1510654720,1510654975,RE -1510654976,1510655999,FR -1510656000,1510656255,RE -1510656256,1510656511,FR -1510656512,1510657535,RE -1510657536,1510658047,FR -1510658048,1510658303,RE +1510654976,1510655231,FR +1510655232,1510656767,RE +1510656768,1510657023,FR +1510657024,1510657535,RE +1510657536,1510657791,FR +1510657792,1510658303,RE 1510658304,1510658559,FR 1510658560,1510658815,RE -1510658816,1510659327,FR -1510659328,1510659583,RE +1510658816,1510659071,FR +1510659072,1510659583,RE 1510659584,1510659839,FR 1510659840,1510660095,RE 1510660096,1510660607,FR -1510660608,1510664447,RE +1510660608,1510662399,RE +1510662400,1510662655,FR +1510662656,1510664447,RE 1510664448,1510664703,FR -1510664704,1510665983,RE -1510665984,1510666239,FR -1510666240,1510668031,RE -1510668032,1510668403,FR +1510664704,1510667775,RE +1510667776,1510668403,FR 1510668404,1510668404,RE 1510668405,1510669018,FR 1510669019,1510669019,RE @@ -25185,38 +26156,28 @@ 1510669898,1510669898,RE 1510669899,1510670012,FR 1510670013,1510670013,RE -1510670014,1511981055,FR -1511981056,1511981567,GP -1511981568,1511981823,FR -1511981824,1511982335,GP -1511982336,1511982847,FR -1511982848,1511984127,GP -1511984128,1511984639,FR -1511984640,1511985151,GP +1510670014,1510670079,FR +1510670080,1510670335,RE +1510670336,1511981055,FR +1511981056,1511984127,GP +1511984128,1511984383,FR +1511984384,1511985151,GP 1511985152,1511985407,FR 1511985408,1511987199,GP 1511987200,1511987455,FR -1511987456,1511989759,GP -1511989760,1511990015,FR -1511990016,1511990271,GP -1511990272,1511990527,FR -1511990528,1511991039,GP -1511991040,1511991295,FR -1511991296,1511991807,GP -1511991808,1511992063,FR -1511992064,1511994111,GP -1511994112,1511994367,FR -1511994368,1511995135,GP -1511995136,1511995391,FR -1511995392,1511997439,GP +1511987456,1511995647,GP +1511995648,1511995903,FR +1511995904,1511997439,GP 1511997440,1511998207,FR 1511998208,1511998719,MF 1511998720,1511999487,BL -1511999488,1512000767,MF +1511999488,1512000255,MF +1512000256,1512000511,BL +1512000512,1512000767,MF 1512000768,1512001023,BL 1512001024,1512002559,FR -1512002560,1512003583,BL -1512003584,1512003839,FR +1512002560,1512003327,BL +1512003328,1512003839,FR 1512003840,1512004095,BL 1512004096,1512004351,MF 1512004352,1512004607,BL @@ -25226,8 +26187,7 @@ 1512005632,1512006655,FR 1512006656,1512006911,BL 1512006912,1512007167,FR -1512007168,1512008447,BL -1512008448,1512008703,FR +1512007168,1512008703,BL 1512008704,1512008959,MF 1512008960,1512009215,FR 1512009216,1512009471,BL @@ -25238,62 +26198,50 @@ 1512011264,1512011775,FR 1512011776,1512012287,MF 1512012288,1512012543,BL -1512012544,1512012799,FR -1512012800,1512013823,MF -1512013824,1512024831,GF -1512024832,1512025087,FR -1512025088,1512026111,GF -1512026112,1512026367,FR -1512026368,1512026879,GF -1512026880,1512027135,FR -1512027136,1512028159,GF -1512028160,1512028927,FR -1512028928,1512029695,GF -1512029696,1512029951,FR -1512029952,1512030207,GF +1512012544,1512012799,MF +1512012800,1512013055,BL +1512013056,1512013311,MF +1512013312,1512013823,BL +1512013824,1512015359,GF +1512015360,1512015615,FR +1512015616,1512017151,GF +1512017152,1512017407,FR +1512017408,1512021759,GF +1512021760,1512022015,FR +1512022016,1512028671,GF +1512028672,1512028927,FR +1512028928,1512030207,GF 1512030208,1512046591,MQ -1512046592,1512309247,FR -1512309248,1512311039,GP -1512311040,1512311295,FR -1512311296,1512311807,GP +1512046592,1512308735,FR +1512308736,1512308991,GP +1512308992,1512309247,FR +1512309248,1512311807,GP 1512311808,1512312063,FR 1512312064,1512312575,GP 1512312576,1512312831,FR -1512312832,1512314111,GP -1512314112,1512314623,FR -1512314624,1512315135,GP -1512315136,1512315391,FR -1512315392,1512316415,GP +1512312832,1512314367,GP +1512314368,1512314623,FR +1512314624,1512316415,GP 1512316416,1512316671,FR -1512316672,1512318207,GP -1512318208,1512318463,FR -1512318464,1512319487,GP +1512316672,1512317183,GP +1512317184,1512317439,FR +1512317440,1512317951,GP +1512317952,1512318463,FR +1512318464,1512318975,GP +1512318976,1512319231,FR +1512319232,1512319487,GP 1512319488,1512319743,FR -1512319744,1512320255,GP -1512320256,1512320511,FR -1512320512,1512322559,GP -1512322560,1512322815,FR -1512322816,1512323071,GP -1512323072,1512323839,FR -1512323840,1512324607,GP -1512324608,1512324863,FR -1512324864,1512325631,GP +1512319744,1512320511,GP +1512320512,1512320767,FR +1512320768,1512321279,GP +1512321280,1512321535,FR +1512321536,1512325631,GP 1512325632,1512325887,FR 1512325888,1512326143,GP 1512326144,1512326399,FR -1512326400,1512326655,GP -1512326656,1512326911,FR -1512326912,1512327679,GP -1512327680,1512327935,FR -1512327936,1512329727,GP -1512329728,1512330239,FR -1512330240,1512330751,GP -1512330752,1512331007,FR -1512331008,1512331263,GP -1512331264,1512331519,FR -1512331520,1512331775,GP -1512331776,1512332031,FR -1512332032,1512333567,GP +1512326400,1512328191,GP +1512328192,1512328447,FR +1512328448,1512333567,GP 1512333568,1512335615,FR 1512335616,1512338175,GP 1512338176,1512338431,FR @@ -25303,55 +26251,43 @@ 1512340480,1512340991,FR 1512340992,1512341759,GP 1512341760,1512342015,FR -1512342016,1512344319,GP +1512342016,1512342783,GP +1512342784,1512343039,FR +1512343040,1512343807,GP +1512343808,1512344063,FR +1512344064,1512344319,GP 1512344320,1512344831,FR -1512344832,1512345343,GP -1512345344,1512345855,FR +1512344832,1512345087,GP +1512345088,1512345343,FR +1512345344,1512345599,GP +1512345600,1512345855,FR 1512345856,1512346623,GP -1512346624,1512347135,FR -1512347136,1512347647,GP -1512347648,1512347903,FR -1512347904,1512348415,GP -1512348416,1512348671,FR -1512348672,1512350463,GP -1512350464,1512350719,FR -1512350720,1512351999,GP +1512346624,1512346879,FR +1512346880,1512350975,GP +1512350976,1512351231,FR +1512351232,1512351999,GP 1512352000,1512352255,FR -1512352256,1512353279,GP -1512353280,1512353791,FR -1512353792,1512354047,GP +1512352256,1512354047,GP 1512354048,1512354303,FR -1512354304,1512354815,GP -1512354816,1512355327,FR +1512354304,1512355071,GP +1512355072,1512355327,FR 1512355328,1512356607,GP 1512356608,1512357119,FR -1512357120,1512357375,GP -1512357376,1512357631,FR -1512357632,1512357887,GP -1512357888,1512358399,FR -1512358400,1512358655,GP -1512358656,1512359167,FR -1512359168,1512359423,GP -1512359424,1512360191,FR -1512360192,1512360959,GP +1512357120,1512358655,GP +1512358656,1512359423,FR +1512359424,1512359679,GP +1512359680,1512359935,FR +1512359936,1512360959,GP 1512360960,1512361215,FR -1512361216,1512363007,GP -1512363008,1512363263,FR -1512363264,1512365055,GP -1512365056,1512365311,FR -1512365312,1512365823,GP +1512361216,1512365823,GP 1512365824,1512366079,FR 1512366080,1512366335,GP -1512366336,1512366847,FR -1512366848,1512367103,GP -1512367104,1512368639,FR +1512366336,1512368639,FR 1512368640,1512369151,GP 1512369152,1512369407,FR 1512369408,1512370441,GP 1512370442,1512370442,FR -1512370443,1512370687,GP -1512370688,1512370943,FR -1512370944,1512371199,GP +1512370443,1512371199,GP 1512371200,1512371455,FR 1512371456,1512374271,GP 1512374272,1514143743,FR @@ -25362,17 +26298,93 @@ 1514602496,1514668031,ES 1514668032,1514799103,FR 1514799104,1514930175,ES -1514930176,1515002367,FR +1514930176,1514999551,FR +1514999552,1515000319,ES +1515000320,1515001087,FR +1515001088,1515001343,ES +1515001344,1515001855,FR +1515001856,1515002111,ES +1515002112,1515002367,FR 1515002368,1515002623,ES -1515002624,1515030783,FR +1515002624,1515002879,FR +1515002880,1515003135,ES +1515003136,1515003391,FR +1515003392,1515003647,ES +1515003648,1515005183,FR +1515005184,1515005439,ES +1515005440,1515005695,FR +1515005696,1515005951,ES +1515005952,1515006207,FR +1515006208,1515006463,ES +1515006464,1515006975,FR +1515006976,1515007231,ES +1515007232,1515008255,FR +1515008256,1515008511,ES +1515008512,1515009300,FR +1515009301,1515009301,ES +1515009302,1515009535,FR +1515009536,1515009791,ES +1515009792,1515011839,FR +1515011840,1515012095,ES +1515012096,1515012607,FR +1515012608,1515012863,ES +1515012864,1515015167,FR +1515015168,1515015423,ES +1515015424,1515017471,FR +1515017472,1515017983,ES +1515017984,1515018239,FR +1515018240,1515018495,ES +1515018496,1515018751,FR +1515018752,1515019263,ES +1515019264,1515019519,FR +1515019520,1515020031,ES +1515020032,1515020799,FR +1515020800,1515021055,ES +1515021056,1515022591,FR +1515022592,1515022847,ES +1515022848,1515026943,FR +1515026944,1515027199,ES +1515027200,1515030783,FR 1515030784,1515031039,ES -1515031040,1515035168,FR +1515031040,1515032319,FR +1515032320,1515032575,ES +1515032576,1515033855,FR +1515033856,1515034111,ES +1515034112,1515034367,FR +1515034368,1515034623,ES +1515034624,1515035168,FR 1515035169,1515035169,ES -1515035170,1515051263,FR +1515035170,1515038971,FR +1515038972,1515038972,ES +1515038973,1515039999,FR +1515040000,1515040255,ES +1515040256,1515041279,FR +1515041280,1515041535,ES +1515041536,1515041791,FR +1515041792,1515042047,ES +1515042048,1515045631,FR +1515045632,1515045887,ES +1515045888,1515047167,FR +1515047168,1515047679,ES +1515047680,1515049471,FR +1515049472,1515049727,ES +1515049728,1515049983,FR +1515049984,1515050495,ES +1515050496,1515051263,FR 1515051264,1515051519,ES -1515051520,1515052989,FR +1515051520,1515052031,FR +1515052032,1515052287,ES +1515052288,1515052989,FR 1515052990,1515052990,ES -1515052991,1515057919,FR +1515052991,1515053311,FR +1515053312,1515053567,ES +1515053568,1515053823,FR +1515053824,1515054079,ES +1515054080,1515056639,FR +1515056640,1515056895,ES +1515056896,1515057151,FR +1515057152,1515057407,ES +1515057408,1515057919,FR 1515057920,1515058175,ES 1515058176,1515059621,FR 1515059622,1515059622,ES @@ -25397,7 +26409,11 @@ 1515489168,1515489535,FR 1515489536,1515489791,US 1515489792,1515491007,NL -1515491008,1518338047,FR +1515491008,1516936703,FR +1516936704,1516936959,ES +1516936960,1516948479,FR +1516948480,1516948735,ES +1516948736,1518338047,FR 1518338048,1518370815,DE 1518370816,1518409727,NL 1518409728,1518411775,SE @@ -25436,7 +26452,8 @@ 1518635008,1518637055,NL 1518637056,1518641151,SE 1518641152,1518649343,NL -1518649344,1518723071,SE +1518649344,1518665727,SE +1518665728,1518723071,LV 1518723072,1518727167,EE 1518727168,1518731263,SE 1518731264,1518747647,DE @@ -25448,7 +26465,7 @@ 1518944256,1518960639,NL 1518960640,1518961663,LT 1518961664,1518962175,EE -1518962176,1518962687,SE +1518962176,1518962687,LV 1518962688,1518964735,NO 1518964736,1518966783,HR 1518966784,1518967807,SE @@ -25456,7 +26473,11 @@ 1518977024,1518985215,NL 1518985216,1518989311,SE 1518989312,1518993152,NL -1518993153,1519190015,SE +1518993153,1519058943,SE +1519058944,1519083519,LV +1519083520,1519091711,SE +1519091712,1519124479,LV +1519124480,1519190015,SE 1519190016,1519198207,NL 1519198208,1519200255,SE 1519200256,1519206399,EE @@ -25477,9 +26498,7 @@ 1519321088,1519337471,KZ 1519337472,1519358975,SE 1519358976,1519359231,KZ -1519359232,1519369215,SE -1519369216,1519369471,KZ -1519369472,1519394815,SE +1519359232,1519394815,SE 1519394816,1519398911,HR 1519398912,1519403007,SE 1519403008,1519419391,NL @@ -25492,9 +26511,9 @@ 1519779840,1519910911,RU 1519910912,1519927295,GB 1519927296,1519927551,NL -1519927552,1519929855,GB -1519929856,1519930111,SE -1519930112,1519931391,GB +1519927552,1519928063,GB +1519928064,1519928319,DK +1519928320,1519931391,GB 1519931392,1519934463,NL 1519934464,1519936191,GB 1519936192,1519936255,DK @@ -25504,9 +26523,7 @@ 1520009216,1520041983,SY 1520041984,1520074751,RU 1520074752,1520107519,BG -1520107520,1520139767,GB -1520139768,1520139775,IE -1520139776,1520140287,GB +1520107520,1520140287,GB 1520140288,1520173055,RU 1520173056,1520205823,PL 1520205824,1520230399,RU @@ -25581,7 +26598,8 @@ 1533448192,1533450239,KW 1533450240,1533452287,RU 1533452288,1533454335,TR -1533454336,1533456383,RS +1533454336,1533454591,XK +1533454592,1533456383,RS 1533456384,1533458431,UA 1533458432,1533460479,GB 1533460480,1533462527,CH @@ -25683,7 +26701,9 @@ 1533929472,1533932799,GB 1533932800,1533933055,DE 1533933056,1534066687,GB -1534066688,1534328831,AT +1534066688,1534246399,AT +1534246400,1534246655,SK +1534246656,1534328831,AT 1534328832,1534459903,ES 1534459904,1534590975,AT 1534590976,1534656511,HU @@ -25719,7 +26739,9 @@ 1534717664,1534717679,GB 1534717680,1534717923,FR 1534717924,1534717927,IT -1534717928,1534718763,FR +1534717928,1534718087,FR +1534718088,1534718091,ES +1534718092,1534718763,FR 1534718764,1534718767,ES 1534718768,1534719747,FR 1534719748,1534719751,ES @@ -25836,7 +26858,10 @@ 1536131072,1536143359,RU 1536143360,1536147455,GB 1536147456,1536151551,IT -1536151552,1536155647,RS +1536151552,1536152575,RS +1536152576,1536152607,XK +1536152608,1536155135,RS +1536155136,1536155647,XK 1536155648,1536159743,IL 1536159744,1536163839,DE 1536163840,1536180223,SY @@ -25859,7 +26884,15 @@ 1536393216,1536409599,SA 1536409600,1536425983,HU 1536425984,1536442367,SK -1536442368,1536458751,RS +1536442368,1536444927,RS +1536444928,1536452607,XK +1536452608,1536453375,RS +1536453376,1536453631,XK +1536453632,1536453887,RS +1536453888,1536453903,XK +1536453904,1536456191,RS +1536456192,1536456447,XK +1536456448,1536458751,RS 1536458752,1536475135,BG 1536475136,1536476545,NL 1536476546,1536476546,GB @@ -25873,7 +26906,17 @@ 1536524288,1536540671,BY 1536540672,1536557055,PL 1536557056,1536573439,FI -1536573440,1536589823,RS +1536573440,1536574463,RS +1536574464,1536574719,XK +1536574720,1536574975,RS +1536574976,1536575615,XK +1536575616,1536579071,RS +1536579072,1536579327,XK +1536579328,1536579583,RS +1536579584,1536579839,XK +1536579840,1536580351,RS +1536580352,1536580607,XK +1536580608,1536589823,RS 1536589824,1536614399,PL 1536614400,1536622591,DK 1536622592,1536626687,GB @@ -25923,7 +26966,9 @@ 1538990080,1538998271,CZ 1538998272,1539006463,AD 1539006464,1539014655,AL -1539014656,1539022847,RS +1539014656,1539019775,XK +1539019776,1539020031,RS +1539020032,1539022847,XK 1539022848,1539031039,LT 1539031040,1539039231,IT 1539039232,1539047423,PL @@ -25970,8 +27015,12 @@ 1539211264,1539213311,CZ 1539213312,1539215359,SE 1539215360,1539219455,DE -1539219456,1539219967,GB -1539219968,1539221503,GG +1539219456,1539219711,GG +1539219712,1539220223,GB +1539220224,1539220479,GG +1539220480,1539220735,GB +1539220736,1539221247,GG +1539221248,1539221503,GB 1539221504,1539223551,FR 1539223552,1539225599,RU 1539225600,1539227647,HU @@ -26114,7 +27163,8 @@ 1539449856,1539450367,DK 1539450368,1539450879,SE 1539450880,1539451391,UA -1539451392,1539452415,RO +1539451392,1539451903,GB +1539451904,1539452415,RO 1539452416,1539452927,GB 1539452928,1539453439,CH 1539453440,1539453951,UA @@ -26304,8 +27354,7 @@ 1539567616,1539568127,DE 1539568128,1539568639,NL 1539568640,1539569151,UA -1539569152,1539569407,SE -1539569408,1539569663,EE +1539569152,1539569663,EE 1539569664,1539570175,UA 1539570176,1539570687,PL 1539570688,1539571711,RU @@ -26591,7 +27640,6 @@ 1539756800,1539757055,BE 1539757056,1539757567,RU 1539757568,1539757823,SI -1539757824,1539758079,UA 1539758080,1539758335,HR 1539758336,1539758591,PL 1539758848,1539759103,BA @@ -26938,7 +27986,7 @@ 1539950848,1539951103,RU 1539951104,1539951615,UA 1539951616,1539953663,RU -1539953664,1539954175,AT +1539953664,1539954175,CH 1539954176,1539954687,KZ 1539954688,1539956735,RO 1539956736,1539957759,UA @@ -27049,7 +28097,7 @@ 1540097024,1540099071,DE 1540099072,1540099583,UA 1540099584,1540099711,US -1540099712,1540099839,UA +1540099712,1540099839,DE 1540099840,1540103167,RU 1540103168,1540105215,DE 1540105216,1540106239,UA @@ -27297,7 +28345,8 @@ 1540317696,1540318207,UA 1540318208,1540318719,RU 1540318720,1540319231,RO -1540319232,1540320255,UA +1540319232,1540319999,UA +1540320000,1540320255,RU 1540320768,1540321279,GB 1540321280,1540321791,SE 1540321792,1540322303,RU @@ -27512,7 +28561,6 @@ 1540402688,1540402943,SE 1540402944,1540403199,NL 1540403200,1540403455,AT -1540403456,1540403711,GB 1540403712,1540404223,RO 1540404224,1540404479,CH 1540404480,1540404735,FR @@ -27610,7 +28658,7 @@ 1540433152,1540433407,GB 1540433408,1540433663,AM 1540433664,1540433919,DK -1540434176,1540434431,DK +1540434176,1540434431,CH 1540434432,1540434687,DE 1540434688,1540434943,GB 1540434944,1540435199,FR @@ -27976,7 +29024,6 @@ 1540650240,1540650495,CH 1540650496,1540650751,RU 1540650752,1540651007,FR -1540651008,1540651263,RO 1540651264,1540651519,CH 1540651520,1540651775,MK 1540652032,1540652543,UA @@ -28272,6 +29319,7 @@ 1540740864,1540741119,RO 1540741120,1540741375,GB 1540741632,1540742143,NL +1540742144,1540742399,RU 1540742400,1540742655,DE 1540742656,1540742911,AT 1540743168,1540743423,NO @@ -28711,6 +29759,7 @@ 1540988672,1540988927,RU 1540988928,1540989183,GB 1540989184,1540989439,PL +1540989440,1540989695,RU 1540989696,1540989951,PL 1540989952,1540990207,FR 1540990208,1540990463,DE @@ -28849,7 +29898,9 @@ 1541083136,1541084159,RO 1541084160,1541086207,RU 1541086208,1541086463,NL -1541086464,1541088255,UA +1541086464,1541086975,UA +1541086976,1541087231,RU +1541087232,1541088255,UA 1541088256,1541089279,RU 1541089280,1541090303,GB 1541090304,1541091327,CZ @@ -29251,8 +30302,7 @@ 1541282816,1541283839,RU 1541283840,1541286911,UA 1541286912,1541287935,DE -1541287936,1541288191,UA -1541288192,1541288959,RU +1541287936,1541288959,RU 1541288960,1541289983,CZ 1541289984,1541291007,PL 1541291008,1541293055,UA @@ -29329,7 +30379,7 @@ 1541349632,1541349887,PL 1541349888,1541350143,RU 1541350144,1541350399,FR -1541350400,1541350655,SE +1541350400,1541350655,NO 1541350656,1541350911,RU 1541350912,1541351167,AT 1541351168,1541351423,SI @@ -30526,7 +31576,8 @@ 1542032384,1542032639,UA 1542032640,1542032895,SA 1542032896,1542033407,DK -1542033408,1542035455,RU +1542033408,1542034943,RU +1542035200,1542035455,RU 1542035456,1542036479,GB 1542036480,1542038271,PL 1542038272,1542038527,SI @@ -31077,7 +32128,6 @@ 1542375424,1542376447,RU 1542376448,1542376959,BG 1542376960,1542377215,DK -1542377216,1542377471,RU 1542377472,1542377983,GB 1542377984,1542378495,RU 1542378496,1542378751,DK @@ -31235,9 +32285,7 @@ 1542456320,1542456831,RO 1542456832,1542457343,RS 1542457344,1542458367,RO -1542458368,1542458623,UZ -1542458624,1542458879,RU -1542458880,1542459391,UZ +1542458368,1542459391,UZ 1542459392,1542459647,RU 1542459648,1542459903,GB 1542459904,1542460415,UA @@ -31701,26 +32749,26 @@ 1546381312,1546383359,DK 1546383360,1546385407,IT 1546385408,1546387455,FR -1546387456,1546491647,TR -1546491648,1546491903,RU -1546491904,1546518527,TR +1546387456,1546518527,TR 1546518528,1546649599,KZ 1546649600,1546665983,SA 1546665984,1546682367,GB 1546682368,1546698751,BE 1546698752,1546715135,NL 1546715136,1546731519,LV -1546731520,1546731775,FR -1546731776,1546732543,MQ -1546732544,1546739711,FR -1546739712,1546739967,GP -1546739968,1546740991,FR -1546740992,1546741503,GP -1546741504,1546745343,FR -1546745344,1546745599,MQ -1546745600,1546746111,FR -1546746112,1546746367,MQ -1546746368,1546747903,FR +1546731520,1546735359,FR +1546735360,1546735615,GP +1546735616,1546735871,FR +1546735872,1546736127,MQ +1546736128,1546739711,FR +1546739712,1546740223,GP +1546740224,1546741247,FR +1546741248,1546741503,GP +1546741504,1546745855,FR +1546745856,1546746111,MQ +1546746112,1546747135,FR +1546747136,1546747391,MQ +1546747392,1546747903,FR 1546747904,1546764287,RU 1546764288,1546780671,UA 1546780672,1546797055,IR @@ -31781,11 +32829,7 @@ 1547542528,1547546623,FR 1547546624,1547550719,IR 1547550720,1547554815,IE -1547554816,1547555071,AT -1547555072,1547555078,NL -1547555079,1547555079,AT -1547555080,1547555327,NL -1547555328,1547558911,AT +1547554816,1547558911,AT 1547558912,1547563007,IL 1547563008,1547565055,NL 1547565056,1547565823,US @@ -31865,7 +32909,9 @@ 1548160256,1548160257,BE 1548160258,1548160259,NL 1548160260,1548160511,BE -1548160512,1548162463,NL +1548160512,1548161375,NL +1548161376,1548161407,GB +1548161408,1548162463,NL 1548162464,1548162495,FR 1548162496,1548169215,NL 1548169216,1548171263,DE @@ -31939,13 +32985,139 @@ 1551577088,1551580159,NL 1551604480,1551604735,SE 1551630336,1551892479,RU -1551892480,1555696895,FR -1555696896,1555697151,ES -1555697152,1555739841,FR +1551892480,1554514250,FR +1554514251,1554514251,RE +1554514252,1554971045,FR +1554971046,1554971046,ES +1554971047,1555073117,FR +1555073118,1555073118,ES +1555073119,1555073583,FR +1555073584,1555073584,ES +1555073585,1555082495,FR +1555082496,1555082751,ES +1555082752,1555103999,FR +1555104000,1555104255,ES +1555104256,1555108390,FR +1555108391,1555108391,ES +1555108392,1555111820,FR +1555111821,1555111821,ES +1555111822,1555124991,FR +1555124992,1555125247,ES +1555125248,1555628031,FR +1555628032,1555628287,ES +1555628288,1555628799,FR +1555628800,1555629055,ES +1555629056,1555630079,FR +1555630080,1555630335,ES +1555630336,1555630923,FR +1555630924,1555630924,ES +1555630925,1555631096,FR +1555631097,1555631097,ES +1555631098,1555632530,FR +1555632531,1555632531,ES +1555632532,1555633663,FR +1555633664,1555633919,ES +1555633920,1555634687,FR +1555634688,1555634943,ES +1555634944,1555635199,FR +1555635200,1555635455,ES +1555635456,1555635845,FR +1555635846,1555635846,ES +1555635847,1555636142,FR +1555636143,1555636143,ES +1555636144,1555636437,FR +1555636438,1555636438,ES +1555636439,1555637325,FR +1555637326,1555637326,ES +1555637327,1555638015,FR +1555638016,1555638271,ES +1555638272,1555638527,FR +1555638528,1555638783,ES +1555638784,1555639015,FR +1555639016,1555639016,ES +1555639017,1555639080,FR +1555639081,1555639081,ES +1555639082,1555639099,FR +1555639100,1555639100,ES +1555639101,1555645183,FR +1555645184,1555645439,ES +1555645440,1555645551,FR +1555645552,1555645552,ES +1555645553,1555645920,FR +1555645921,1555645921,ES +1555645922,1555649537,FR +1555649538,1555649538,ES +1555649539,1555650518,FR +1555650519,1555650519,ES +1555650520,1555651327,FR +1555651328,1555651583,ES +1555651584,1555655044,FR +1555655045,1555655045,ES +1555655046,1555655938,FR +1555655939,1555655939,ES +1555655940,1555656505,FR +1555656506,1555656506,ES +1555656507,1555656680,FR +1555656681,1555656681,ES +1555656682,1555656703,FR +1555656704,1555656959,ES +1555656960,1555659421,FR +1555659422,1555659422,ES +1555659423,1555660031,FR +1555660032,1555660287,ES +1555660288,1555695871,FR +1555695872,1555696127,ES +1555696128,1555696639,FR +1555696640,1555697151,ES +1555697152,1555697663,FR +1555697664,1555698175,ES +1555698176,1555698431,FR +1555698432,1555698687,ES +1555698688,1555705087,FR +1555705088,1555705343,ES +1555705344,1555707903,FR +1555707904,1555708159,ES +1555708160,1555709695,FR +1555709696,1555709951,ES +1555709952,1555711231,FR +1555711232,1555711487,ES +1555711488,1555713023,FR +1555713024,1555713279,ES +1555713280,1555716607,FR +1555716608,1555716863,ES +1555716864,1555723263,FR +1555723264,1555723519,ES +1555723520,1555724799,FR +1555724800,1555725311,ES +1555725312,1555726847,FR +1555726848,1555727103,ES +1555727104,1555730275,FR +1555730276,1555730276,ES +1555730277,1555731199,FR +1555731200,1555731455,ES +1555731456,1555739841,FR 1555739842,1555739842,ES -1555739843,1555760639,FR +1555739843,1555742207,FR +1555742208,1555742463,ES +1555742464,1555754495,FR +1555754496,1555754751,ES +1555754752,1555755007,FR +1555755008,1555755263,ES +1555755264,1555758591,FR +1555758592,1555758847,ES +1555758848,1555760639,FR 1555760640,1555760895,ES -1555760896,1556086783,FR +1555760896,1555762175,FR +1555762176,1555762431,ES +1555762432,1555762464,FR +1555762465,1555762465,ES +1555762466,1555763199,FR +1555763200,1555763455,ES +1555763456,1555765759,FR +1555765760,1555766015,ES +1555766016,1555766271,FR +1555766272,1555766527,ES +1555766528,1556086783,FR 1556086784,1557069823,DE 1557069824,1557076991,GB 1557076992,1557077247,DE @@ -31971,7 +33143,9 @@ 1558081176,1558081183,BE 1558081184,1558083775,FR 1558083776,1558083791,DE -1558083792,1558084655,FR +1558083792,1558083959,FR +1558083960,1558083963,CZ +1558083964,1558084655,FR 1558084656,1558084659,BE 1558084660,1558085055,FR 1558085056,1558085071,GB @@ -31989,7 +33163,9 @@ 1558102508,1558102508,DE 1558102509,1558103159,FR 1558103160,1558103167,GB -1558103168,1558112095,FR +1558103168,1558107391,FR +1558107392,1558107455,NL +1558107456,1558112095,FR 1558112096,1558112127,ES 1558112128,1558112191,FR 1558112192,1558112192,ES @@ -31997,13 +33173,17 @@ 1558112208,1558112208,ES 1558112209,1558112209,FR 1558112210,1558112211,ES -1558112212,1558118399,FR +1558112212,1558115327,FR +1558115328,1558115455,NL +1558115456,1558118399,FR 1558118400,1558119423,DE 1558119424,1558122495,RU 1558122496,1558123007,SG 1558123008,1558123519,RU 1558123520,1558125567,LU -1558125568,1558141439,AT +1558125568,1558126591,AT +1558126592,1558128639,RU +1558128640,1558141439,AT 1558141440,1558141695,CY 1558141696,1558147071,AT 1558147072,1558147327,LU @@ -32031,7 +33211,8 @@ 1558180864,1558183935,IT 1558183936,1558708223,DE 1558708224,1558904831,GB -1558904832,1558970367,BE +1558904832,1558921215,IE +1558921216,1558970367,BE 1558970368,1559236607,GB 1559236608,1559240703,IL 1559240704,1559248895,BA @@ -32049,7 +33230,11 @@ 1559322624,1559330815,RU 1559330816,1559339007,BA 1559339008,1559347199,RU -1559347200,1559355391,SE +1559347200,1559347967,SE +1559347968,1559348223,DK +1559348224,1559348479,SE +1559348480,1559348735,DK +1559348736,1559355391,SE 1559355392,1559388159,RU 1559388160,1559396351,UA 1559396352,1559404543,GB @@ -32091,8 +33276,8 @@ 1559887872,1559920639,PT 1559920640,1559932927,LU 1559932928,1559939071,DE -1559939072,1559942143,LU -1559942144,1559943167,DE +1559939072,1559941887,LU +1559941888,1559943167,DE 1559943168,1559944191,LU 1559944192,1559945727,FR 1559945728,1559946751,LU @@ -32215,7 +33400,9 @@ 1566388224,1566390271,LU 1566390272,1566392319,LT 1566392320,1566394367,ES -1566394368,1566394528,GB +1566394368,1566394465,GB +1566394466,1566394466,NO +1566394467,1566394528,GB 1566394529,1566394529,FR 1566394530,1566394530,GB 1566394531,1566394531,DE @@ -32263,9 +33450,7 @@ 1566443520,1566445567,NO 1566445568,1566447615,PL 1566447616,1566451711,IT -1566451712,1566452223,IL -1566452224,1566452479,TR -1566452480,1566453759,IL +1566451712,1566453759,IL 1566453760,1566455807,IQ 1566455808,1566457855,PT 1566457856,1566459903,CH @@ -32379,7 +33564,9 @@ 1567785984,1567786239,MD 1567786240,1567789055,RO 1567789056,1567793151,ES -1567793152,1567826175,RO +1567793152,1567804415,RO +1567804416,1567805439,ES +1567805440,1567826175,RO 1567826176,1567826431,DE 1567826432,1567827455,RO 1567827456,1567827711,BG @@ -32465,8 +33652,8 @@ 1568145408,1568178175,RO 1568178176,1568210943,RU 1568210944,1568243711,GB -1568243712,1568247551,GP -1568247552,1568247807,MF +1568243712,1568247679,GP +1568247680,1568247807,MF 1568247808,1568250879,GP 1568250880,1568251135,MF 1568251136,1568254719,GP @@ -32584,8 +33771,8 @@ 1571436288,1571436543,UA 1571436544,1571438591,BA 1571438592,1571440639,UA -1571440640,1571440895,RU -1571440896,1571441407,CZ +1571440640,1571441151,RU +1571441152,1571441407,CZ 1571441408,1571441663,UA 1571441664,1571441919,RU 1571441920,1571442175,CZ @@ -32601,7 +33788,9 @@ 1571447296,1571447807,RU 1571447808,1571448063,CZ 1571448064,1571448319,RU -1571448320,1571448575,CZ +1571448320,1571448328,CZ +1571448329,1571448329,RU +1571448330,1571448575,CZ 1571448576,1571448831,RU 1571448832,1571449343,NL 1571449344,1571449855,CZ @@ -32633,8 +33822,9 @@ 1571476480,1571479551,RU 1571479552,1571483647,CZ 1571483648,1571484159,RU -1571484160,1571485183,CZ -1571485184,1571486719,RU +1571484160,1571484671,CZ +1571484672,1571484927,KZ +1571484928,1571486719,RU 1571486720,1571486975,CZ 1571486976,1571487231,UA 1571487232,1571487743,CZ @@ -32658,7 +33848,9 @@ 1571524352,1571524607,CZ 1571524608,1571526655,RU 1571526656,1571526911,UA -1571526912,1571528191,CZ +1571526912,1571527167,CZ +1571527168,1571527679,SK +1571527680,1571528191,CZ 1571528192,1571528703,UA 1571528704,1571529215,BY 1571529216,1571529471,CZ @@ -32696,9 +33888,11 @@ 1571545344,1571545599,UA 1571545600,1571545855,CZ 1571545856,1571546111,RU -1571546112,1571546879,CZ +1571546112,1571546623,CZ +1571546624,1571546879,NL 1571546880,1571547135,RU -1571547136,1571549183,CZ +1571547136,1571548159,CZ +1571548160,1571549183,RU 1571549184,1571550207,UA 1571550208,1571550463,RU 1571550464,1571553279,UA @@ -32747,21 +33941,15 @@ 1571799040,1571815423,UA 1571815424,1571815679,FR 1571815680,1571815935,RE -1571815936,1571817215,FR -1571817216,1571817471,RE -1571817472,1571817727,FR -1571817728,1571817983,RE -1571817984,1571823615,FR -1571823616,1571823871,RE -1571823872,1571825151,FR +1571815936,1571819007,FR +1571819008,1571819263,RE +1571819264,1571822591,FR +1571822592,1571822847,RE +1571822848,1571825151,FR 1571825152,1571825407,RE -1571825408,1571826687,FR -1571826688,1571826943,RE -1571826944,1571827711,FR -1571827712,1571827967,RE -1571827968,1571829759,FR -1571829760,1571830015,RE -1571830016,1571830527,FR +1571825408,1571830015,FR +1571830016,1571830271,RE +1571830272,1571830527,FR 1571830528,1571830783,RE 1571830784,1571831807,FR 1571831808,1571848191,DK @@ -32778,10 +33966,8 @@ 1572020224,1572028415,SE 1572028416,1572028927,GB 1572028928,1572029183,UA -1572029184,1572030156,GB -1572030157,1572030157,RU -1572030158,1572030463,GB -1572030464,1572034815,RU +1572029184,1572029951,GB +1572029952,1572034815,RU 1572034816,1572034943,BY 1572034944,1572035071,US 1572035072,1572035199,CZ @@ -32824,7 +34010,8 @@ 1572347904,1572351999,FR 1572352000,1572356095,DE 1572356096,1572360191,SK -1572360192,1572364287,RS +1572360192,1572362751,XK +1572362752,1572364287,RS 1572364288,1572368383,NL 1572368384,1572372479,NO 1572372480,1572376575,DE @@ -32833,10 +34020,8 @@ 1572384768,1572388863,DE 1572388864,1572392959,DK 1572392960,1572393471,NL -1572393472,1572393727,US -1572393728,1572393983,GB -1572393984,1572394239,DE -1572394240,1572394495,US +1572393472,1572393983,GB +1572393984,1572394495,DE 1572394496,1572394751,FR 1572394752,1572395263,US 1572395264,1572395519,NL @@ -32878,9 +34063,8 @@ 1572524032,1572528127,GE 1572528128,1572532223,RU 1572532224,1572536319,IT -1572536320,1572536575,GB -1572536576,1572537087,GG -1572537088,1572538367,GB +1572536320,1572537599,GG +1572537600,1572538367,GB 1572538368,1572540415,NL 1572540416,1572542463,GB 1572542464,1572544511,IT @@ -32899,8 +34083,9 @@ 1572564992,1572567039,DE 1572567040,1572569087,RU 1572571136,1572573183,BG -1572573184,1572573439,GB -1572573440,1572574463,GG +1572573184,1572573439,GG +1572573440,1572573951,GB +1572573952,1572574463,GG 1572574464,1572574719,GB 1572574720,1572574975,GG 1572574976,1572575231,GB @@ -32914,7 +34099,7 @@ 1572591616,1572593663,NL 1572593664,1572595711,GB 1572595712,1572597759,DE -1572597760,1572599807,XK +1572597760,1572599807,RS 1572599808,1572601855,DE 1572601856,1572603903,SE 1572603904,1572605951,GE @@ -32969,16 +34154,12 @@ 1572706304,1572708351,DE 1572708352,1572708607,GB 1572708608,1572709375,GG -1572709376,1572709887,GB -1572709888,1572710143,GG -1572710144,1572710399,GB +1572709376,1572710399,GB 1572710400,1572712447,DE 1572712448,1572714495,ES 1572714496,1572714943,NG 1572714944,1572714959,IT -1572714960,1572715775,NG -1572715776,1572716031,IT -1572716032,1572716543,NG +1572714960,1572716543,NG 1572716544,1572718591,SA 1572718592,1572720639,RU 1572720640,1572722687,IT @@ -33044,8 +34225,12 @@ 1572843520,1572845567,JO 1572845568,1572847615,FR 1572847616,1572849663,GI -1572849664,1572850431,JE -1572850432,1572851711,GB +1572849664,1572849919,JE +1572849920,1572850175,GB +1572850176,1572850431,JE +1572850432,1572850687,GB +1572850688,1572850943,JE +1572850944,1572851711,GB 1572851712,1572853759,DE 1572853760,1572855807,BE 1572855808,1572857855,KZ @@ -33187,14 +34372,17 @@ 1580015616,1580048383,UA 1580048384,1580064767,RU 1580064768,1580072959,GB -1580072960,1580083199,PT +1580072960,1580081151,PT +1580081152,1580083199,TR 1580083200,1580087565,US 1580087566,1580087566,SE 1580087567,1580089102,US 1580089103,1580089103,SE 1580089104,1580089343,US 1580089344,1580097535,PT -1580097536,1580101955,GB +1580097536,1580098047,GB +1580098048,1580098303,US +1580098304,1580101955,GB 1580101956,1580101956,SE 1580101957,1580105007,GB 1580105008,1580105008,SE @@ -33247,17 +34435,7 @@ 1582252032,1582268415,TR 1582268416,1582284799,DE 1582284800,1582301183,BH -1582301184,1582452223,IT -1582452224,1582452231,SI -1582452232,1582695151,IT -1582695152,1582695159,SI -1582695160,1582701383,IT -1582701384,1582701391,SI -1582701392,1582704639,IT -1582704640,1582705663,SI -1582705664,1582853903,IT -1582853904,1582853919,SI -1582853920,1583349759,IT +1582301184,1583349759,IT 1583349760,1583611903,SA 1583611904,1583615999,LV 1583616000,1583620095,NL @@ -33281,7 +34459,6 @@ 1583693824,1583697919,RU 1583697920,1583702015,TR 1583702016,1583706111,RU -1583706624,1583706879,RU 1583710208,1583714303,IR 1583714304,1583722495,GB 1583722496,1583726591,IR @@ -33331,7 +34508,9 @@ 1583800320,1583804415,ME 1583804416,1583808511,GB 1583808512,1583812607,MD -1583812608,1583816703,NL +1583812608,1583816351,NL +1583816352,1583816367,GB +1583816368,1583816703,NL 1583816704,1583820799,TR 1583820800,1583824895,LV 1583824896,1583828991,SI @@ -33368,9 +34547,9 @@ 1585219584,1585221631,NL 1585221632,1585223679,SK 1585223680,1585223935,MQ -1585223936,1585224063,RE -1585224064,1585225471,FR -1585225472,1585225727,YT +1585223936,1585224191,FR +1585224192,1585224447,YT +1585224448,1585225727,FR 1585225728,1585227007,UA 1585227008,1585227263,RU 1585227264,1585227775,UA @@ -33379,8 +34558,7 @@ 1585233920,1585238015,RU 1585238016,1585240063,DE 1585240064,1585241087,FR -1585241088,1585241343,GP -1585241344,1585242111,MQ +1585241088,1585242111,MQ 1585242112,1585244159,RU 1585244160,1585246207,FR 1585246208,1585248255,RU @@ -33426,8 +34604,7 @@ 1585334272,1585336319,DE 1585336320,1585338367,SE 1585338368,1585340415,RU -1585340416,1585340671,DE -1585340672,1585342463,AT +1585340416,1585342463,AT 1585342464,1585344511,GB 1585344512,1585346559,FR 1585346560,1585348607,GB @@ -33534,9 +34711,7 @@ 1586403328,1586405375,IS 1586405376,1586407423,AT 1586407424,1586409471,GB -1586411520,1586412031,GB -1586412032,1586412287,US -1586412288,1586413567,GB +1586411520,1586413567,GB 1586413568,1586415615,IT 1586415616,1586416255,ES 1586416256,1586417663,AD @@ -33603,8 +34778,10 @@ 1587478528,1587511295,RU 1587511296,1587544063,IL 1587544064,1588068351,IT -1588068352,1588133887,NL -1588133888,1588592639,GB +1588068352,1588134655,NL +1588134656,1588134911,GB +1588134912,1588199423,NL +1588199424,1588592639,GB 1588592640,1588593663,RO 1588593664,1588593919,MD 1588593920,1588594687,RO @@ -33617,7 +34794,9 @@ 1588619776,1588620287,SG 1588620288,1588621311,RO 1588621312,1588625407,MD -1588625408,1588637695,RO +1588625408,1588628479,RO +1588628480,1588628735,ES +1588628736,1588637695,RO 1588637696,1588638719,ES 1588638720,1588641535,RO 1588641536,1588641791,GB @@ -33628,7 +34807,7 @@ 1588652160,1588654079,RO 1588654080,1588658175,DE 1588658176,1588659199,RO -1588659200,1588659711,NL +1588659200,1588659711,GB 1588659712,1588661247,RO 1588661248,1588661503,NL 1588661504,1588663807,RO @@ -33646,7 +34825,12 @@ 1588685312,1588689663,RO 1588689664,1588689919,RU 1588689920,1588690687,GB -1588690688,1588723711,RO +1588690688,1588690943,RO +1588690944,1588692991,PL +1588692992,1588699135,RO +1588699136,1588719615,IT +1588719616,1588722687,RO +1588722688,1588723711,IT 1588723712,1588854783,UA 1588854784,1588985855,RU 1588985856,1589182463,IR @@ -33846,9 +35030,7 @@ 1592901632,1592934399,RU 1592934400,1592950783,CZ 1592950784,1592967167,RU -1592967168,1592980351,LU -1592980352,1592980479,DE -1592980480,1592983551,LU +1592967168,1592983551,LU 1592983552,1592999935,RU 1592999936,1593016319,MD 1593016320,1593049087,RU @@ -33858,19 +35040,22 @@ 1593098240,1593114623,CH 1593114624,1593131007,SE 1593131008,1593131023,CH -1593131024,1593131519,GB -1593131520,1593131775,CH -1593131776,1593133055,GB -1593133056,1593133311,FR -1593133312,1593134335,GB -1593134336,1593134351,AT -1593134352,1593134591,GB -1593134592,1593134863,SE -1593134864,1593135615,GB -1593135616,1593135743,RU -1593135744,1593143295,GB -1593143296,1593143551,IE -1593143552,1593147391,GB +1593131024,1593131039,SE +1593131040,1593134079,GB +1593134080,1593134591,AT +1593134592,1593134847,GB +1593134848,1593134863,SE +1593134864,1593135359,GB +1593135360,1593135615,IE +1593135616,1593136639,GB +1593136640,1593136895,IE +1593136896,1593137151,GB +1593137152,1593139199,IE +1593139200,1593140223,NL +1593140224,1593140351,IE +1593140352,1593140479,NL +1593140480,1593147135,IE +1593147136,1593147391,GB 1593147392,1593163775,RU 1593163776,1593180159,AT 1593180160,1593196543,NO @@ -33969,7 +35154,7 @@ 1596851200,1596851455,RU 1596851456,1596851711,CZ 1596851712,1596851967,UA -1596851968,1596852223,CZ +1596851968,1596852223,LV 1596852224,1596854271,UA 1596854272,1596858367,BY 1596858368,1596858879,CZ @@ -33979,8 +35164,8 @@ 1596876800,1596877055,CZ 1596877056,1596877311,RU 1596877312,1596877823,CZ -1596877824,1596878847,RU -1596878848,1596879871,CZ +1596877824,1596879359,RU +1596879360,1596879871,CZ 1596879872,1596880895,RU 1596880896,1596881407,UA 1596881408,1596881919,CZ @@ -34091,9 +35276,7 @@ 1599209472,1599242239,IR 1599242240,1599258623,CZ 1599258624,1599324159,RU -1599324160,1599339007,IE -1599339008,1599339263,RU -1599339264,1599340543,IE +1599324160,1599340543,IE 1599340544,1599356927,RU 1599356928,1599373311,BH 1599373312,1599406079,RU @@ -34133,9 +35316,7 @@ 1600978944,1601011711,SE 1601011712,1601044479,UA 1601044480,1601077247,RU -1601077248,1601109567,IT -1601109568,1601109631,FR -1601109632,1601110015,IT +1601077248,1601110015,IT 1601110016,1601142783,BG 1601142784,1601175551,UA 1601175552,1601699839,DE @@ -34307,7 +35488,8 @@ 1603081256,1603081263,FI 1603081264,1603081279,GB 1603081280,1603081295,US -1603081296,1603081471,ES +1603081296,1603081407,GB +1603081408,1603081471,ES 1603081472,1603082239,GB 1603082240,1603082495,DE 1603082496,1603082751,GT @@ -34360,8 +35542,8 @@ 1603219456,1603223551,CH 1603223552,1603223807,FR 1603223808,1603225087,GB -1603225088,1603225343,FR -1603225344,1603226255,GB +1603225088,1603225599,FR +1603225600,1603226255,GB 1603226256,1603226263,DE 1603226264,1603226271,NL 1603226272,1603227647,GB @@ -34417,7 +35599,9 @@ 1604288512,1604304895,RU 1604304896,1604321279,SI 1604321280,1604386815,PL -1604386816,1604444159,RU +1604386816,1604433919,RU +1604433920,1604434943,KZ +1604434944,1604444159,RU 1604444160,1604445183,KZ 1604445184,1604452351,RU 1604452352,1604517887,RO @@ -34540,9 +35724,7 @@ 1605165056,1605173247,GB 1605173248,1605181439,TR 1605181440,1605189631,LT -1605189632,1605189887,CZ -1605189888,1605190143,SK -1605190144,1605197823,CZ +1605189632,1605197823,CZ 1605197824,1605206015,DE 1605206016,1605214207,RU 1605214208,1605222399,TR @@ -34633,7 +35815,9 @@ 1607622656,1607624703,ES 1607624704,1607625727,IT 1607625728,1607625983,ES -1607625984,1607626121,IT +1607625984,1607625986,IT +1607625987,1607625987,PT +1607625988,1607626121,IT 1607626122,1607626122,ES 1607626123,1607626239,IT 1607626240,1607626751,ES @@ -34804,13 +35988,19 @@ 1618866176,1618870271,CA 1618870272,1618984959,US 1618984960,1619001343,CA -1619001344,1632305151,US +1619001344,1631865343,US +1631865344,1631865599,PR +1631865600,1632305151,US 1632305152,1632321535,CA 1632321536,1632354303,US 1632354304,1632362495,CA -1632362496,1632978175,US +1632362496,1632977023,US +1632977024,1632977151,CA +1632977152,1632978175,US 1632978176,1632978303,CA -1632978304,1632980607,US +1632978304,1632979839,US +1632979840,1632979967,CA +1632979968,1632980607,US 1632980608,1632980735,CA 1632980736,1634414591,US 1634414592,1634418687,CA @@ -34825,7 +36015,8 @@ 1652310016,1652481279,US 1652481280,1652481791,CN 1652481792,1653500927,US -1653500928,1653501183,FR +1653500928,1653501175,FR +1653501176,1653501183,US 1653501184,1653501439,IL 1653501440,1653534719,US 1653534720,1653538815,CA @@ -34847,7 +36038,9 @@ 1654648832,1654652927,CA 1654652928,1660149759,US 1660149760,1660149887,CA -1660149888,1673527295,US +1660149888,1660560127,US +1660560128,1660560255,CA +1660560256,1673527295,US 1673527296,1673560063,CA 1673560064,1673580287,US 1673580288,1673580543,CA @@ -34900,7 +36093,8 @@ 1697996800,1697997823,JP 1697997824,1697998847,CN 1697998848,1698004991,JP -1698004992,1698037759,AU +1698004992,1698013183,IN +1698013184,1698037759,AU 1698037760,1698103295,CN 1698103296,1698136063,KR 1698136064,1698160639,JP @@ -35192,7 +36386,10 @@ 1728389120,1728390143,TW 1728390144,1728391167,CN 1728391168,1728392191,JP -1728392192,1728393215,SG +1728392192,1728392215,TW +1728392216,1728392527,SG +1728392528,1728392543,TW +1728392544,1728393215,SG 1728393216,1728394239,ID 1728394240,1728396287,CN 1728396288,1728397311,PH @@ -35235,7 +36432,6 @@ 1728427008,1728428031,MY 1728428032,1728430079,IN 1728430080,1728431103,CN -1728431104,1728431615,AF 1728431616,1728431871,HK 1728431872,1728432127,SG 1728432128,1728433151,IN @@ -35251,7 +36447,10 @@ 1728441344,1728442367,MY 1728442368,1728443391,SG 1728443392,1728444415,IN -1728444416,1728445439,JP +1728444416,1728444671,HK +1728444672,1728444927,JP +1728444928,1728445183,HK +1728445184,1728445439,JP 1728445440,1728446463,CN 1728446464,1728446975,ID 1728446976,1728447231,IN @@ -35271,7 +36470,8 @@ 1728458752,1728459775,HK 1728459776,1728460799,ID 1728460800,1728462847,JP -1728462848,1728463871,US +1728462848,1728463359,NZ +1728463360,1728463871,US 1728463872,1728464895,JP 1728464896,1728465919,KR 1728465920,1728466943,CN @@ -35291,7 +36491,8 @@ 1728476160,1728476415,AU 1728476416,1728476927,ID 1728476928,1728477183,IN -1728478208,1728480255,HK +1728478208,1728479231,JP +1728479232,1728480255,HK 1728480256,1728481279,IN 1728481280,1728483327,HK 1728483328,1728484351,NZ @@ -35445,7 +36646,9 @@ 1728618496,1728619519,MY 1728619520,1728620543,IN 1728620544,1728622591,AU -1728622592,1728624639,SG +1728622592,1728624439,SG +1728624440,1728624447,JP +1728624448,1728624639,SG 1728624640,1728625663,JP 1728625664,1728626175,IN 1728626176,1728626431,JP @@ -35562,7 +36765,6 @@ 1728736256,1728736511,HK 1728736512,1728736767,IN 1728736768,1728737023,ID -1728737024,1728737279,CN 1728737280,1728738303,JP 1728738304,1728739327,IN 1728739328,1728740351,ID @@ -35586,9 +36788,7 @@ 1728756736,1728757759,IN 1728757760,1728758783,JP 1728758784,1728759039,MY -1728759040,1728759257,HK -1728759258,1728759258,KR -1728759259,1728759295,HK +1728759040,1728759295,HK 1728759296,1728759551,MY 1728759552,1728759807,HK 1728759808,1728760831,PH @@ -35625,7 +36825,7 @@ 1728787456,1728788479,AU 1728788480,1728789503,KR 1728789504,1728790527,PK -1728790528,1728791551,PH +1728790528,1728791551,US 1728791552,1728792575,PK 1728792576,1728793087,HK 1728793088,1728793599,ID @@ -35662,7 +36862,6 @@ 1728821760,1728822271,ID 1728822272,1728823295,SG 1728823296,1728824319,MN -1728824320,1728825343,JP 1728825344,1728826367,SG 1728826368,1728827391,AU 1728827392,1728828415,JP @@ -36044,7 +37243,66 @@ 1729167360,1729168383,IN 1729168384,1729169407,JP 1729169408,1729170431,TW -1729170432,1729171455,HK +1729170432,1729170462,JP +1729170463,1729170463,HK +1729170464,1729170494,JP +1729170495,1729170495,HK +1729170496,1729170526,JP +1729170527,1729170527,HK +1729170528,1729170558,JP +1729170559,1729170559,HK +1729170560,1729170590,JP +1729170591,1729170591,HK +1729170592,1729170622,JP +1729170623,1729170623,HK +1729170624,1729170654,JP +1729170655,1729170655,HK +1729170656,1729170686,JP +1729170687,1729170687,HK +1729170688,1729170718,CN +1729170719,1729170719,HK +1729170720,1729170750,CN +1729170751,1729170751,HK +1729170752,1729170782,CN +1729170783,1729170783,HK +1729170784,1729170814,CN +1729170815,1729170815,HK +1729170816,1729170846,CN +1729170847,1729170847,HK +1729170848,1729170878,CN +1729170879,1729170879,HK +1729170880,1729170942,CN +1729170943,1729170943,HK +1729170944,1729170974,CN +1729170975,1729170975,HK +1729170976,1729171006,CN +1729171007,1729171007,HK +1729171008,1729171038,CN +1729171039,1729171039,HK +1729171040,1729171070,CN +1729171071,1729171071,HK +1729171072,1729171102,CN +1729171103,1729171135,HK +1729171136,1729171166,CN +1729171167,1729171167,HK +1729171168,1729171198,CN +1729171199,1729171199,HK +1729171200,1729171230,JP +1729171231,1729171231,HK +1729171232,1729171262,JP +1729171263,1729171263,HK +1729171264,1729171294,JP +1729171295,1729171295,HK +1729171296,1729171326,JP +1729171327,1729171327,HK +1729171328,1729171358,JP +1729171359,1729171359,HK +1729171360,1729171390,JP +1729171391,1729171391,HK +1729171392,1729171422,JP +1729171423,1729171423,HK +1729171424,1729171454,JP +1729171455,1729171455,HK 1729171456,1729171967,AU 1729171968,1729172223,IN 1729172224,1729172479,MY @@ -36155,7 +37413,9 @@ 1729274880,1729276927,IN 1729276928,1729277951,BN 1729277952,1729278975,VN -1729280000,1729281023,HK +1729278976,1729279231,BD +1729279232,1729279487,ID +1729279488,1729281023,HK 1729281024,1729281535,AU 1729281536,1729282047,ID 1729282048,1729283071,CN @@ -36352,13 +37612,11 @@ 1729476608,1729477631,IN 1729477632,1729478655,AU 1729478912,1729479423,NZ -1729479424,1729479679,IN 1729479680,1729480703,TW 1729480704,1729481727,KR 1729481728,1729482751,ID 1729482752,1729483775,CN 1729483776,1729485823,ID -1729485824,1729486847,HK 1729486848,1729488383,ID 1729488384,1729488895,SB 1729488896,1729490943,IN @@ -36455,7 +37713,7 @@ 1729600512,1729601535,VN 1729601536,1729603583,CN 1729603584,1729604607,HK -1729604608,1729604863,AU +1729604608,1729605119,IN 1729605120,1729605375,AU 1729605376,1729605631,ID 1729605632,1729606655,CN @@ -36466,7 +37724,6 @@ 1729610004,1729610063,HK 1729610064,1729610071,SG 1729610072,1729610751,HK -1729610752,1729611775,JP 1729611776,1729612799,ID 1729612800,1729613823,BD 1729613824,1729614847,SG @@ -36578,7 +37835,7 @@ 1729717248,1729718271,JP 1729718272,1729719295,HK 1729719296,1729720319,ID -1729720320,1729721087,AU +1729720320,1729721343,AU 1729721344,1729722367,NZ 1729722368,1729723391,BD 1729723392,1729726463,IN @@ -36633,7 +37890,9 @@ 1729776640,1729777663,CN 1729777664,1729779711,PK 1729779712,1729780735,AU -1729780736,1729781503,HK +1729780736,1729780991,HK +1729780992,1729781247,ID +1729781248,1729781503,HK 1729781504,1729781759,TL 1729781760,1729782783,IN 1729782784,1729783551,ID @@ -36821,7 +38080,6 @@ 1729952512,1729952767,NZ 1729952768,1729953791,IN 1729954816,1729955839,ID -1729955840,1729956863,BD 1729956864,1729957887,HK 1729957888,1729958911,CN 1729958912,1729959935,PH @@ -36829,7 +38087,8 @@ 1729960960,1729961471,IN 1729961472,1729961983,NZ 1729961984,1729964031,IN -1729964032,1729965055,AU +1729964032,1729964543,AU +1729964800,1729965055,AU 1729965056,1729966079,IN 1729966080,1729967103,JP 1729967104,1729968127,AU @@ -36887,10 +38146,10 @@ 1730017792,1730019327,PH 1730019328,1730020351,ID 1730020352,1730021375,HK -1730021376,1730022399,JP 1730022400,1730023423,IN 1730023424,1730024447,HK 1730024448,1730025471,CN +1730025472,1730026495,HK 1730026496,1730027519,BD 1730027520,1730028543,SG 1730028544,1730029567,VN @@ -36899,7 +38158,6 @@ 1730031616,1730032639,HK 1730032640,1730033663,JP 1730033664,1730034687,ID -1730034688,1730035711,JP 1730035712,1730036735,IN 1730036736,1730037759,HK 1730037760,1730038783,JP @@ -36907,7 +38165,7 @@ 1730039808,1730040831,IN 1730040832,1730043903,ID 1730043904,1730044927,CN -1730044928,1730046975,HK +1730044928,1730045951,HK 1730046976,1730047999,KR 1730048000,1730049023,TL 1730049024,1730050047,IN @@ -36931,10 +38189,11 @@ 1730066432,1730067455,AU 1730067456,1730068479,BD 1730068480,1730069503,IN +1730069504,1730070527,PK 1730070528,1730071551,CN 1730071552,1730072575,KR -1730072576,1730073599,SG -1730073600,1730073855,HK +1730072576,1730073343,SG +1730073344,1730073855,HK 1730074112,1730074367,AU 1730074368,1730074623,SG 1730075648,1730076671,ID @@ -36945,10 +38204,10 @@ 1730080768,1730081791,HK 1730081792,1730082815,ID 1730082816,1730083839,PW +1730083840,1730084863,IN 1730084864,1730085887,CN 1730085888,1730086399,SG -1730086400,1730086911,AU -1730086912,1730087935,HK +1730086400,1730086911,US 1730087936,1730088959,JP 1730088960,1730091007,HK 1730091008,1730091519,SG @@ -36957,7 +38216,6 @@ 1730093056,1730093567,ID 1730093568,1730094079,MY 1730094080,1730095103,ID -1730095104,1730096127,JP 1730096128,1730097151,ID 1730097152,1730103295,CN 1730103296,1730104319,HK @@ -36971,7 +38229,6 @@ 1730112512,1730112767,BD 1730112768,1730113535,ID 1730113536,1730114559,AU -1730114560,1730115583,JP 1730115584,1730117631,VN 1730117632,1730118655,KH 1730118656,1730119679,ID @@ -36987,8 +38244,12 @@ 1730128896,1730129919,SG 1730129920,1730130943,BD 1730130944,1730131967,KR -1730131968,1730132799,HK -1730132800,1730132831,RO +1730131968,1730132015,HK +1730132016,1730132223,US +1730132224,1730132351,HK +1730132352,1730132399,GB +1730132400,1730132735,HK +1730132736,1730132831,RO 1730132832,1730132991,HK 1730132992,1730134015,IN 1730134016,1730135039,JP @@ -37133,7 +38394,8 @@ 1730503680,1730505727,CN 1730505728,1730508799,JP 1730508800,1730509823,AU -1730509824,1730510847,CN +1730509824,1730510591,CN +1730510592,1730510847,HK 1730510848,1730511871,AU 1730511872,1730512895,JP 1730512896,1730521087,CN @@ -37309,19 +38571,19 @@ 1730753536,1730754559,CN 1730754560,1730755071,IN 1730755072,1730755583,TH -1730755584,1730756351,JP -1730756352,1730756607,CN +1730755584,1730756607,JP 1730756608,1730757631,HK 1730757632,1730758655,SG -1730758656,1730759679,JP 1730760704,1730761727,HK 1730761728,1730762751,TH 1730762752,1730766847,IN +1730766848,1730767871,CN 1730767872,1730768127,AU 1730768128,1730768639,ID 1730768640,1730768895,BD 1730769920,1730770943,CN 1730770944,1730771967,ID +1730771968,1730772991,CN 1730772992,1730774015,SG 1730774016,1730775039,HK 1730775040,1730776063,JP @@ -37337,7 +38599,8 @@ 1730784256,1730785279,HK 1730785280,1730785535,NL 1730785536,1730786303,AU -1730786304,1730787327,HK +1730786304,1730787583,HK +1730787584,1730788351,CN 1730788352,1730790399,ID 1730790400,1730791423,IN 1730791424,1730794495,ID @@ -37352,12 +38615,12 @@ 1730803712,1730804735,HK 1730804736,1730805759,JP 1730805760,1730806783,AF -1730806784,1730807807,JP 1730807808,1730808831,CN 1730808832,1730809855,HK 1730809856,1730810623,IN 1730810624,1730811903,AU 1730811904,1730814975,CN +1730814976,1730815999,HK 1730816000,1730817023,ID 1730817024,1730818047,JP 1730818048,1730818815,AU @@ -37377,7 +38640,6 @@ 1730834944,1730835455,IN 1730835456,1730837503,ID 1730837504,1730838527,IN -1730838528,1730839551,TH 1730839552,1730840575,AU 1730840576,1730841599,SG 1730841600,1730842623,AU @@ -37400,12 +38662,9 @@ 1730859008,1730860031,BN 1730860032,1730861055,HK 1730861056,1730862079,MM -1730862080,1730863103,JP 1730863104,1730864127,AU -1730864128,1730865151,TW 1730865152,1730866175,CN 1730866176,1730867199,AU -1730868224,1730869247,KR 1730869248,1730870271,IN 1730870272,1730871807,ID 1730871808,1730873343,IN @@ -37435,7 +38694,8 @@ 1730895872,1730898943,CN 1730898944,1730899967,MO 1730899968,1730900991,IN -1730900992,1730901503,AU +1730900992,1730901247,HK +1730901248,1730901503,SG 1730901504,1730901759,DE 1730901760,1730902015,AU 1730902016,1730903039,KR @@ -37450,7 +38710,6 @@ 1730910208,1730911231,IN 1730911232,1730912255,NC 1730912256,1730913279,IN -1730913280,1730914303,CN 1730914304,1730915327,NP 1730915328,1730916351,HK 1730916352,1730918399,AU @@ -37494,7 +38753,9 @@ 1730951168,1730952191,CN 1730952192,1730954239,HK 1730954240,1730955263,SG -1730955264,1730957311,BD +1730955264,1730956031,BD +1730956032,1730956287,NL +1730956288,1730957311,BD 1730957312,1730958335,CN 1730958336,1730959359,JP 1730959360,1730960383,CN @@ -37543,7 +38804,6 @@ 1731066880,1731067391,PH 1731067392,1731067903,AU 1731067904,1731068927,CN -1731068928,1731070975,JP 1731070976,1731103743,CN 1731103744,1731103871,TH 1731103872,1731103999,FR @@ -37552,7 +38812,6 @@ 1731104256,1731104511,CN 1731104512,1731104639,MY 1731104640,1731104767,SG -1731104768,1731105791,TW 1731105792,1731106815,BD 1731106816,1731115007,CN 1731115008,1731116031,HK @@ -37750,7 +39009,6 @@ 1731322880,1731323903,ID 1731323904,1731327487,IN 1731327488,1731327999,HK -1731328000,1731329023,CN 1731329024,1731330047,IN 1731330048,1731331071,SG 1731331072,1731332095,IN @@ -37898,14 +39156,17 @@ 1731509248,1731510271,HK 1731510272,1731510527,MY 1731510528,1731510783,AU -1731510784,1731511295,IN +1731510784,1731511039,IN +1731511040,1731511295,US 1731511296,1731512319,CN 1731512320,1731513343,KR 1731513344,1731514367,NZ 1731514368,1731515391,IN 1731515392,1731515647,AU 1731515648,1731515903,ID -1731515904,1731517439,HK +1731515904,1731516159,HK +1731516160,1731516415,US +1731516416,1731517439,HK 1731517440,1731519487,IN 1731519488,1731520511,MM 1731520512,1731523583,JP @@ -38404,8 +39665,8 @@ 1732127744,1732128767,HK 1732128768,1732129023,SG 1732129024,1732129279,NZ -1732129280,1732129535,AU -1732129536,1732129791,HK +1732129280,1732129790,AU +1732129791,1732129791,HK 1732129792,1732130815,CN 1732130816,1732134911,IN 1732134912,1732140031,CN @@ -38570,7 +39831,8 @@ 1740791808,1740792831,IN 1740792832,1740794879,HK 1740794880,1740795903,KR -1740795904,1740796415,NZ +1740795904,1740796159,NZ +1740796160,1740796415,AU 1740796416,1740796671,IN 1740796672,1740796927,AU 1740796928,1740798207,IN @@ -38641,7 +39903,8 @@ 1740873728,1740874751,CN 1740874752,1740876287,ID 1740876288,1740876799,AU -1740876800,1740880895,IN +1740876800,1740880639,IN +1740880640,1740880895,HK 1740880896,1740881919,SG 1740881920,1740882943,CN 1740882944,1740884991,IN @@ -38691,7 +39954,6 @@ 1740938496,1740938751,IN 1740938752,1740939263,TH 1740939264,1740940287,PK -1740940288,1740941311,JP 1740941312,1740942335,CN 1740942336,1740943359,TW 1740944384,1740945407,US @@ -38762,7 +40024,9 @@ 1741025280,1741026303,IN 1741026304,1741027327,TH 1741027328,1741028351,BD -1741028352,1741029375,CN +1741028352,1741028519,CN +1741028520,1741028520,HK +1741028521,1741029375,CN 1741029376,1741029631,SG 1741029632,1741029887,HK 1741029888,1741030399,BD @@ -38842,7 +40106,6 @@ 1741125632,1741128703,IN 1741128704,1741129727,JP 1741129728,1741130751,IN -1741130752,1741131775,JP 1741131776,1741132799,IN 1741132800,1741133823,HK 1741133824,1741134847,BD @@ -38863,7 +40126,9 @@ 1741157376,1741158399,HK 1741158400,1741160447,CN 1741160448,1741161471,TW -1741161472,1741162495,SG +1741161472,1741161727,SG +1741161728,1741162239,HK +1741162240,1741162495,SG 1741162496,1741164543,AU 1741164544,1741165567,ID 1741165568,1741167615,VN @@ -38886,7 +40151,6 @@ 1741195264,1741210623,CN 1741210624,1741211647,PK 1741211648,1741212671,SG -1741212672,1741213695,IR 1741213696,1741214719,SG 1741214720,1741215743,IN 1741215744,1741216767,SG @@ -38917,7 +40181,7 @@ 1741350912,1741351935,US 1741351936,1741366271,CN 1741366272,1741367295,IN -1741367296,1741368319,HK +1741367296,1741368319,US 1741368320,1741369343,PK 1741369344,1741370367,HK 1741370368,1741372415,CN @@ -39037,6 +40301,268 @@ 1741521920,1741522943,BD 1741522944,1741523967,CN 1741523968,1741528063,IN +1741528064,1741529087,PH +1741529088,1741529599,TH +1741529600,1741529855,CN +1741529856,1741530111,IN +1741530112,1741531135,HK +1741531136,1741532159,JP +1741532160,1741533183,IN +1741533184,1741534207,PK +1741534208,1741535231,BD +1741535232,1741535487,JP +1741535488,1741535743,IN +1741535744,1741536255,SG +1741536256,1741540351,CN +1741540352,1741541375,AU +1741541376,1741542399,MY +1741542400,1741546495,IN +1741546496,1741547519,AU +1741547520,1741548543,BD +1741548544,1741549567,CN +1741549568,1741550591,HK +1741550592,1741551103,IN +1741551104,1741551615,AU +1741551616,1741554687,CN +1741554688,1741557759,IN +1741557760,1741558783,AU +1741558784,1741559807,HK +1741559808,1741560831,SG +1741560832,1741561087,AU +1741561088,1741561855,SG +1741561856,1741562879,NZ +1741562880,1741563903,HK +1741563904,1741564927,SG +1741564928,1741565951,CN +1741565952,1741572607,IN +1741572608,1741573119,KR +1741573120,1741574143,JP +1741574144,1741575167,PH +1741575168,1741576191,PK +1741576192,1741577215,JP +1741577216,1741578239,HK +1741578240,1741578751,IN +1741578752,1741579007,SG +1741579008,1741581311,IN +1741581312,1741582335,CN +1741582336,1741584383,IN +1741584384,1741586431,HK +1741586432,1741591551,IN +1741591552,1741592575,CN +1741592576,1741593087,MN +1741593088,1741593599,AU +1741593600,1741594111,HK +1741594112,1741594367,MY +1741594368,1741596671,IN +1741596672,1741597695,ID +1741597696,1741597951,IN +1741597952,1741598207,MM +1741598208,1741600767,IN +1741600768,1741601279,BD +1741601280,1741601535,ID +1741601536,1741601791,AU +1741601792,1741602815,HK +1741602816,1741603839,MN +1741603840,1741604863,JP +1741604864,1741605887,PH +1741605888,1741606911,TH +1741606912,1741607935,IN +1741607936,1741609983,VN +1741609984,1741612031,IN +1741612032,1741613055,BD +1741613056,1741614079,HK +1741614080,1741615103,AU +1741615104,1741617151,ID +1741617152,1741618175,IN +1741618176,1741619199,ID +1741619200,1741623295,IN +1741623296,1741623551,NZ +1741623552,1741623807,IN +1741623808,1741624063,AU +1741624064,1741624319,MY +1741624320,1741625343,JP +1741625344,1741626367,HK +1741626368,1741627391,AU +1741627392,1741629439,VN +1741629440,1741631487,IN +1741631488,1741632511,CN +1741632512,1741636607,IN +1741636608,1741637631,HK +1741637632,1741638655,PH +1741638656,1741639679,NZ +1741639680,1741640703,NP +1741640704,1741641727,PK +1741641728,1741642751,BD +1741642752,1741643007,AU +1741643008,1741643263,HK +1741643264,1741643775,AU +1741643776,1741644799,ID +1741644800,1741645311,IN +1741645312,1741645567,AU +1741645568,1741645823,IN +1741645824,1741646847,CN +1741646848,1741647871,SG +1741647872,1741648895,KH +1741648896,1741649919,HK +1741649920,1741658111,IN +1741658112,1741658623,BD +1741658624,1741659135,AU +1741659136,1741659647,SG +1741659648,1741659903,PH +1741659904,1741660159,HK +1741660160,1741661183,IN +1741661184,1741662207,CN +1741662208,1741666303,IN +1741666304,1741674495,CN +1741674496,1741675519,JP +1741675520,1741676543,CN +1741676544,1741677567,IN +1741677568,1741679615,CN +1741679616,1741680639,ID +1741680640,1741683711,IN +1741683712,1741684735,TW +1741684736,1741685247,HK +1741685248,1741685503,AU +1741685504,1741685759,SG +1741685760,1741686783,AU +1741686784,1741687807,HK +1741687808,1741689855,CN +1741689856,1741690367,IN +1741690368,1741690623,AU +1741690624,1741690879,ID +1741690880,1741691903,TH +1741691904,1741692927,CN +1741692928,1741693951,HK +1741693952,1741694975,TL +1741694976,1741698047,CN +1741698048,1741706239,IN +1741706240,1741706751,AT +1741706752,1741707263,NZ +1741707264,1741708287,IN +1741708288,1741708543,AU +1741708544,1741708799,US +1741708800,1741709311,ID +1741709312,1741710335,JP +1741710336,1741711359,ID +1741711360,1741718527,IN +1741718528,1741719551,BD +1741719552,1741720063,ID +1741720064,1741720575,TH +1741720576,1741721599,NZ +1741721600,1741722623,IN +1741722624,1741723647,CN +1741723648,1741724415,IN +1741724416,1741724671,AU +1741724672,1741725695,IN +1741725696,1741726719,ID +1741726720,1741727743,NZ +1741727744,1741729791,IN +1741729792,1741730815,HK +1741730816,1741731839,BD +1741731840,1741733887,AU +1741733888,1741734911,HK +1741734912,1741735423,TW +1741735424,1741735679,IN +1741735680,1741735935,AU +1741735936,1741736959,IN +1741736960,1741737983,ID +1741737984,1741739007,IN +1741739008,1741740031,TH +1741740032,1741741055,AU +1741741056,1741742079,JP +1741742080,1741749247,IN +1741749248,1741750527,SG +1741750528,1741750783,ID +1741750784,1741751807,AU +1741751808,1741752831,ID +1741752832,1741753087,NZ +1741753088,1741753343,BD +1741753344,1741754367,NZ +1741754368,1741755391,IN +1741755392,1741756415,BD +1741756416,1741756927,AU +1741756928,1741757439,IN +1741757440,1741758463,HK +1741758464,1741759487,PK +1741759488,1741760511,IN +1741760512,1741761535,HK +1741761536,1741762559,AU +1741762560,1741763583,TH +1741763584,1741764095,PK +1741764096,1741764351,PG +1741764352,1741764607,AU +1741764608,1741765631,PH +1741765632,1741766655,HK +1741766656,1741768703,IN +1741768704,1741769727,AU +1741769728,1741770751,PK +1741770752,1741771775,BD +1741771776,1741772799,PK +1741772800,1741774591,IN +1741774592,1741774847,ID +1741774848,1741775359,IN +1741775360,1741775615,ID +1741775616,1741775871,IN +1741775872,1741777919,MY +1741777920,1741778431,AU +1741778432,1741778943,IN +1741778944,1741779967,CN +1741779968,1741780991,JP +1741780992,1741782015,SG +1741782016,1741783039,AU +1741783040,1741783551,SG +1741783552,1741784063,ID +1741784064,1741785087,IN +1741785088,1741786111,CN +1741786112,1741788159,IN +1741788160,1741789183,JP +1741789184,1741790207,AU +1741790208,1741791231,MY +1741791232,1741792255,AU +1741792256,1741794303,SG +1741794304,1741795327,KR +1741795328,1741797375,IN +1741797376,1741798399,ID +1741798400,1741798911,AU +1741798912,1741799167,SG +1741799168,1741799423,AU +1741799424,1741800447,NZ +1741800448,1741801471,BD +1741801472,1741802495,CN +1741802496,1741803519,IN +1741803520,1741804543,CN +1741804544,1741805567,IN +1741805568,1741806591,CN +1741806592,1741807615,IN +1741807616,1741808639,NZ +1741808640,1741809663,BD +1741809664,1741810687,CN +1741810688,1741811711,JP +1741811712,1741812223,IN +1741812224,1741813759,AU +1741813760,1741814783,ID +1741814784,1741815807,JP +1741815808,1741816831,CN +1741816832,1741817855,PK +1741817856,1741818367,PH +1741818368,1741818879,AU +1741818880,1741819903,PK +1741819904,1741820927,BD +1741820928,1741821951,PH +1741821952,1741822975,AU +1741822976,1741824511,IN +1741824512,1741825023,ID +1741825024,1741830143,IN +1741830144,1741832191,BD +1741832192,1741833215,IN +1741833216,1741834239,BD +1741834240,1741835263,IN +1741835264,1741836287,AU +1741836288,1741837311,IN +1741837312,1741838335,JP +1741838336,1741840383,IN +1741840384,1741841407,CN +1741841408,1741843455,IN 1742734336,1742735359,IN 1742735360,1742736383,JP 1742736384,1742737407,PK @@ -39053,7 +40579,6 @@ 1742746112,1742746623,IN 1742746624,1742747135,AU 1742747136,1742747391,IN -1742747392,1742747647,AU 1742747648,1742748671,HK 1742748672,1742749695,CN 1742749696,1742750719,ID @@ -39136,7 +40661,9 @@ 1742835712,1742836735,JP 1742836736,1742837759,ID 1742837760,1742838783,JP -1742838784,1742841855,AU +1742838784,1742840831,AU +1742840832,1742841087,US +1742841088,1742841855,AU 1742841856,1742842367,TH 1742842368,1742843391,ID 1742843392,1742843647,IN @@ -39159,7 +40686,6 @@ 1742859264,1742860287,VN 1742860288,1742860799,AU 1742860800,1742861055,ID -1742861056,1742861311,AU 1742861312,1742862335,NP 1742862336,1742862847,IN 1742862848,1742863359,HK @@ -39498,7 +41024,7 @@ 1743225856,1743226367,IN 1743226368,1743226623,PH 1743226624,1743226879,BD -1743226880,1743227903,AF +1743226880,1743227903,IR 1743227904,1743228927,HK 1743228928,1743229951,CN 1743229952,1743230975,VN @@ -39588,6 +41114,7 @@ 1743322112,1743323135,AU 1743323136,1743324159,MY 1743324160,1743325183,CN +1743325184,1743326207,HK 1743326208,1743327231,SG 1743327232,1743328255,AU 1743328256,1743329279,NZ @@ -39621,7 +41148,6 @@ 1743355904,1743356927,CN 1743356928,1743357951,NZ 1743357952,1743358975,CN -1743358976,1743359231,AF 1743359488,1743361023,ID 1743361024,1743362047,AU 1743362048,1743364095,ID @@ -39783,9 +41309,7 @@ 1743571200,1743571455,ID 1743571456,1743571967,AU 1743571968,1743574015,IN -1743574016,1743574527,AU -1743574528,1743574783,US -1743574784,1743575039,AU +1743574016,1743575039,US 1743575040,1743576063,HK 1743576064,1743577087,CN 1743577088,1743578111,JP @@ -40035,7 +41559,9 @@ 1743897600,1743899647,AU 1743899648,1743900671,ID 1743900672,1743901695,JP -1743901696,1743903743,AU +1743901696,1743902463,AU +1743902464,1743902719,US +1743902720,1743903743,AU 1743903744,1743904767,CN 1743904768,1743905791,IN 1743905792,1743906815,HK @@ -40137,6 +41663,7 @@ 1744006912,1744009215,IN 1744009216,1744010239,JP 1744010240,1744011263,IN +1744011264,1744012287,HK 1744012288,1744013311,IN 1744013312,1744014335,CN 1744014336,1744015359,BD @@ -40153,6 +41680,7 @@ 1744024320,1744024575,AF 1744024576,1744025599,HK 1744025600,1744026623,IN +1744026624,1744027647,SG 1744027648,1744028671,MY 1744028672,1744029695,JP 1744029696,1744030719,KR @@ -40173,9 +41701,8 @@ 1744046080,1744047103,SG 1744047104,1744048127,BD 1744048128,1744049151,CN -1744049152,1744050175,BD -1744050176,1744051199,HK 1744051200,1744052223,PH +1744052224,1744053247,IN 1744053248,1744054271,ID 1744054272,1744055295,KR 1744055296,1744056319,HK @@ -40269,8 +41796,8 @@ 1744150528,1744151551,TO 1744151552,1744152319,LA 1744152320,1744152575,TH -1744152576,1744153599,JP 1744153600,1744154623,NZ +1744154624,1744154879,SG 1744154880,1744155135,ID 1744155136,1744155647,BD 1744155648,1744156671,ID @@ -40328,7 +41855,9 @@ 1744208384,1744208895,AU 1744208896,1744209919,CN 1744209920,1744210943,AU -1744210944,1744211967,SG +1744210944,1744211199,JP +1744211200,1744211455,HK +1744211456,1744211967,SG 1744211968,1744212991,KH 1744212992,1744213503,SG 1744213504,1744214015,JP @@ -40370,7 +41899,8 @@ 1744239616,1744240639,JP 1744240640,1744241663,AU 1744241664,1744242687,IN -1744242688,1744247807,ID +1744242688,1744245503,ID +1744245760,1744247807,ID 1744247808,1744248831,IN 1744248832,1744249855,ID 1744249856,1744250367,HK @@ -40516,7 +42046,8 @@ 1744386560,1744387071,ID 1744387072,1744388095,NZ 1744388096,1744388607,ID -1744388608,1744390143,AU +1744388608,1744389631,AU +1744389632,1744390143,RO 1744390144,1744391167,HK 1744391168,1744393215,IN 1744393216,1744394239,MY @@ -40652,7 +42183,7 @@ 1744541696,1744542719,ID 1744542720,1744543743,JP 1744543744,1744544767,CN -1744544768,1744545791,HK +1744544768,1744545791,NL 1744545792,1744546047,NZ 1744546048,1744547839,AU 1744547840,1744548863,AF @@ -40672,7 +42203,7 @@ 1744567296,1744568319,JP 1744568320,1744569343,VN 1744569344,1744570367,IN -1744570880,1744571391,AU +1744570368,1744571391,AU 1744571392,1744571903,ID 1744571904,1744572415,AU 1744572416,1744573439,HK @@ -40681,9 +42212,9 @@ 1744575488,1744576511,CN 1744577536,1744578559,CN 1744578560,1744580607,IN -1744580608,1744580863,PH 1744580864,1744581119,SG 1744581120,1744581631,ID +1744581632,1744582655,IN 1744582656,1744583679,AU 1744583680,1744584703,IN 1744584704,1744585727,CN @@ -40707,7 +42238,9 @@ 1744597152,1744597183,IN 1744597184,1744597215,JP 1744597216,1744598015,SG +1744598016,1744599039,IN 1744599040,1744601087,JP +1744601088,1744602111,TW 1744602112,1744603135,HK 1744603136,1744604159,JP 1744604160,1744607231,IN @@ -40722,6 +42255,7 @@ 1744616448,1744616959,ID 1744616960,1744617471,AU 1744617472,1744618495,IN +1744618496,1744619519,TW 1744619520,1744620543,SG 1744620544,1744622591,CN 1744622592,1744624639,IN @@ -40761,6 +42295,7 @@ 1744656384,1744657407,VN 1744657408,1744658431,AU 1744658432,1744659455,HK +1744659456,1744660479,JP 1744660480,1744660735,IN 1744660736,1744660991,MY 1744660992,1744661503,ID @@ -40774,6 +42309,7 @@ 1744665856,1744666111,IN 1744666112,1744666367,AU 1744666368,1744666623,PH +1744666624,1744667647,IN 1744667648,1744668671,TH 1744668672,1744669695,NZ 1744669696,1744670719,HK @@ -40796,6 +42332,7 @@ 1744692224,1744693247,IN 1744693248,1744694271,CN 1744694272,1744695295,HK +1744695296,1744696319,KR 1744696320,1744697343,PH 1744697344,1744698367,HK 1744698368,1744699391,KH @@ -40846,6 +42383,7 @@ 1744744448,1744745471,CN 1744745472,1744747519,NP 1744747520,1744748543,CN +1744748544,1744749055,IN 1744749056,1744749567,NZ 1744749568,1744749823,CN 1744750592,1744752639,IN @@ -40886,7 +42424,6 @@ 1744786432,1744787455,VN 1744787456,1744789503,CN 1744789504,1744792575,IN -1744792576,1744793599,PK 1744793600,1744794623,IN 1744794624,1744795647,KH 1744795648,1744797183,ID @@ -40954,26 +42491,64 @@ 1747304448,1747308543,CA 1747308544,1747316735,US 1747316736,1747317759,CA -1747317760,1747485016,US -1747485017,1747485017,NL -1747485018,1747500223,US +1747317760,1747484671,US +1747484672,1747500223,NL 1747500224,1747500224,IE -1747500225,1747517439,US -1747517440,1747521535,BR -1747521536,1747521791,US -1747521792,1747522303,BR -1747522304,1747525631,US -1747525632,1747527679,BR -1747527680,1747558399,US +1747500225,1747517439,NL +1747517440,1747533823,BR +1747533824,1747550207,IE +1747550208,1747558399,US 1747558400,1747566591,JP -1747566592,1747763679,US +1747566592,1747582975,IE +1747582976,1747648511,US +1747648512,1747681279,SG +1747681280,1747738879,US +1747738880,1747739135,SG +1747739136,1747740415,US +1747740416,1747740671,AU +1747740672,1747740927,JP +1747740928,1747741215,US +1747741216,1747741279,IN +1747741280,1747741311,US +1747741312,1747741343,AT +1747741344,1747741375,US +1747741376,1747741407,NL +1747741408,1747741439,BR +1747741440,1747741471,AU +1747741472,1747741519,US +1747741520,1747741551,IN +1747741552,1747741887,US +1747741888,1747741919,CL +1747741920,1747743487,US +1747743488,1747743743,NL +1747743744,1747743999,IE +1747744000,1747744767,US +1747744768,1747746815,SG +1747746816,1747763519,US +1747763520,1747763583,NL +1747763584,1747763679,US 1747763680,1747763711,AU -1747763712,1747767887,US +1747763712,1747763839,HK +1747763840,1747765983,US +1747765984,1747766015,CA +1747766016,1747766151,US +1747766152,1747766159,IE +1747766160,1747766167,HK +1747766168,1747766207,US +1747766208,1747766271,HK +1747766272,1747767455,US +1747767456,1747767487,HK +1747767488,1747767551,US +1747767552,1747767615,HK +1747767616,1747767871,US +1747767872,1747767887,IE 1747767888,1747767903,AU 1747767904,1747767919,JP 1747767920,1747767935,AU 1747767936,1747767951,JP -1747767952,1747770623,US +1747767952,1747770239,US +1747770240,1747770367,IN +1747770368,1747770623,US 1747770624,1747770655,JP 1747770656,1747770687,SG 1747770688,1747770719,JP @@ -40981,15 +42556,37 @@ 1747770752,1747770815,AT 1747770816,1747770943,US 1747770944,1747771007,SE -1747771008,1747771071,AU -1747771072,1747771135,OM -1747771136,1747779583,US -1747779584,1747795967,NL -1747795968,1747801855,US -1747801856,1747802111,IE -1747802112,1747853924,US -1747853925,1747853925,NL -1747853926,1749061631,US +1747771008,1747771135,AU +1747771136,1747777679,US +1747777680,1747777743,CA +1747777744,1747779071,US +1747779072,1747779135,IN +1747779136,1747779199,SG +1747779200,1747779583,US +1747779584,1747800063,NL +1747800064,1747812351,IE +1747812352,1747847167,US +1747847168,1747849215,IE +1747849216,1747851263,NL +1747851264,1747852287,HK +1747852288,1747853311,AU +1747853312,1747861503,NL +1747861504,1747869695,IE +1747869696,1747877887,US +1747877888,1747886079,SG +1747886080,1747894271,HK +1747894272,1747898367,US +1747898368,1747906559,JP +1747906560,1747910655,AU +1747910656,1747941887,US +1747941888,1747942143,MY +1747942144,1747943423,US +1747943424,1747959807,NL +1747959808,1747964927,US +1747964928,1747965951,IN +1747965952,1747966463,US +1747966464,1747966975,IE +1747966976,1749061631,US 1749061632,1749069823,NL 1749069824,1749094399,US 1749094400,1749098495,NL @@ -41140,7 +42737,11 @@ 1753517568,1753517823,NO 1753517824,1753522431,US 1753522432,1753522687,FR -1753522688,1753529087,US +1753522688,1753526015,US +1753526016,1753526271,DE +1753526272,1753527039,US +1753527040,1753527295,NL +1753527296,1753529087,US 1753529088,1753529343,NZ 1753529344,1753547007,US 1753547008,1753547263,DE @@ -41170,9 +42771,7 @@ 1754210304,1754223615,US 1754223616,1754223623,MX 1754223624,1754223631,AU -1754223632,1754230783,US -1754230784,1754234879,VG -1754234880,1754251519,US +1754223632,1754251519,US 1754251520,1754251775,LY 1754251776,1754252031,US 1754252032,1754252287,MR @@ -41207,7 +42806,44 @@ 1754333184,1754337279,CA 1754337280,1754394367,US 1754394368,1754394623,CA -1754394624,1754792959,US +1754394624,1754402815,US +1754402816,1754402879,NL +1754402880,1754402943,IE +1754402944,1754403135,NL +1754403136,1754403327,IE +1754403328,1754403519,NL +1754403520,1754403711,IE +1754403712,1754403775,HK +1754403776,1754403839,SG +1754403840,1754404415,NL +1754404416,1754404863,IE +1754404864,1754405887,US +1754405888,1754405903,NL +1754405904,1754405919,IE +1754405920,1754405951,NL +1754405952,1754405967,IE +1754405968,1754405983,HK +1754405984,1754405999,SG +1754406000,1754406031,NL +1754406032,1754406063,IE +1754406064,1754406399,US +1754406400,1754406527,IE +1754406528,1754445567,US +1754445568,1754445823,CA +1754445824,1754448127,US +1754448128,1754448383,CA +1754448384,1754448895,US +1754448896,1754449407,JP +1754449408,1754449919,SG +1754449920,1754451199,NL +1754451200,1754453247,US +1754453248,1754453503,BR +1754453504,1754454271,IE +1754454272,1754455551,US +1754455552,1754456063,HK +1754456064,1754457087,US +1754457088,1754457343,SG +1754457344,1754792959,US 1754792960,1754793983,CA 1754793984,1754799103,US 1754799104,1754800127,CA @@ -41490,7 +43126,22 @@ 1758420736,1758420991,MM 1758420992,1758429695,US 1758429696,1758430207,DE -1758430208,1759128575,US +1758430208,1758478335,US +1758478336,1758494719,HK +1758494720,1758543871,US +1758543872,1758552063,AU +1758552064,1758609407,US +1758609408,1758625791,AU +1758625792,1758674943,US +1758674944,1758724095,IN +1758724096,1758887935,US +1758887936,1758896127,JP +1758896128,1758904319,HK +1758904320,1758920703,NL +1758920704,1758937087,JP +1758937088,1758953471,US +1758953472,1758986239,SG +1758986240,1759128575,US 1759128576,1759129599,CA 1759129600,1759131647,US 1759131648,1759133695,CA @@ -41858,9 +43509,7 @@ 1761519616,1761521663,PR 1761521664,1761522687,US 1761522688,1761523711,CA -1761523712,1761524735,US -1761524736,1761525759,CA -1761525760,1761526783,US +1761523712,1761526783,US 1761526784,1761527807,CA 1761527808,1761544191,US 1761544192,1761546239,CA @@ -42002,6 +43651,12 @@ 1778384896,1778385151,CN 1778385152,1778385407,AU 1778385408,1778393087,CN +1778393088,1778396159,IN +1778396160,1778397183,CN +1778397184,1778398207,ID +1778398208,1778399231,BD +1778399232,1778400255,IN +1778400256,1778401279,BD 1778401280,1778417663,CN 1778417664,1778450431,TH 1778450432,1778515967,TW @@ -42025,8 +43680,10 @@ 1790967808,1793064959,IN 1793064960,1794113535,CN 1794113536,1795162111,KR -1795162112,1795388031,US -1795388032,1795388415,CA +1795162112,1795387903,US +1795387904,1795388159,CA +1795388160,1795388287,US +1795388288,1795388415,CA 1795388416,1795555839,US 1795555840,1795555855,CA 1795555856,1795556351,US @@ -42043,7 +43700,9 @@ 1795561984,1795562495,CA 1795562496,1795562911,US 1795562912,1795562943,CA -1795562944,1795564031,US +1795562944,1795563263,US +1795563264,1795563519,CA +1795563520,1795564031,US 1795564032,1795564543,CA 1795564544,1795565823,US 1795565824,1795566079,CA @@ -42106,8 +43765,9 @@ 1805253632,1805253887,DE 1805253888,1805254143,US 1805254144,1805254399,DE -1805254400,1805254655,GB -1805254656,1805582335,US +1805254400,1805284863,US +1805284864,1805285119,ES +1805285120,1805582335,US 1805582336,1805647871,CA 1805647872,1805713407,US 1805713408,1805717503,CA @@ -42121,9 +43781,7 @@ 1805752576,1805753087,CA 1805753088,1805754111,US 1805754112,1805754367,CA -1805754368,1806134015,US -1806134016,1806134271,IN -1806134272,1806172159,US +1805754368,1806172159,US 1806172160,1806172415,DE 1806172416,1806172671,GB 1806172672,1806172927,DE @@ -42288,8 +43946,8 @@ 1822618368,1822619391,US 1822619392,1822620415,AU 1822620416,1822620927,US -1822620928,1822621439,DE -1822621440,1822654463,US +1822620928,1822621183,DE +1822621184,1822654463,US 1822654464,1822662143,CA 1822662144,1822662399,US 1822662400,1822670847,CA @@ -42304,7 +43962,14 @@ 1823179008,1823179263,DE 1823179264,1823180287,US 1823180288,1823180543,AU -1823180544,1823186687,US +1823180544,1823181055,US +1823181056,1823181311,DK +1823181312,1823181567,BR +1823181568,1823181823,FR +1823181824,1823182079,CA +1823182080,1823182335,US +1823182336,1823182591,SG +1823182592,1823186687,US 1823186688,1823186943,IN 1823186944,1823211519,US 1823211520,1823342591,CA @@ -42317,9 +43982,7 @@ 1823379456,1823383551,US 1823383552,1823387647,CA 1823387648,1823428607,US -1823428608,1823430655,CA -1823430656,1823430911,US -1823430912,1823432703,CA +1823428608,1823432703,CA 1823432704,1823440895,US 1823440896,1823444991,CA 1823444992,1823465471,US @@ -42327,58 +43990,64 @@ 1823469568,1823735807,US 1823735808,1823866879,CA 1823866880,1828716543,US -1828716544,1830106367,FR -1830106368,1830106623,CH -1830106624,1830813695,FR +1828716544,1830813695,FR 1830813696,1831337983,NL 1831337984,1831862271,DE 1831862272,1832124415,PT 1832124416,1832386559,IT 1832386560,1832456959,DK 1832456960,1832457215,SE -1832457216,1832478463,DK -1832478464,1832478719,SE -1832478720,1832517631,DK +1832457216,1832517631,DK 1832517632,1832583167,SE -1832583168,1832648703,DK +1832583168,1832599039,DK +1832599040,1832599167,SE +1832599168,1832648703,DK 1832648704,1832681471,HR 1832681472,1832714239,RU 1832714240,1832747007,HU 1832747008,1832779775,RU -1832779776,1832780799,FR +1832779776,1832780031,FR +1832780032,1832780287,MQ +1832780288,1832780799,FR 1832780800,1832781055,MQ 1832781056,1832782591,FR -1832782592,1832783103,MQ -1832783104,1832784639,FR +1832782592,1832782847,MQ +1832782848,1832783103,FR +1832783104,1832783359,MQ +1832783360,1832784639,FR 1832784640,1832785407,GP -1832785408,1832786943,FR -1832786944,1832787967,GF -1832787968,1832790527,FR +1832785408,1832785663,FR +1832785664,1832785919,GP +1832785920,1832787199,FR +1832787200,1832787967,GF +1832787968,1832790015,FR +1832790016,1832790271,YT +1832790272,1832790527,FR 1832790528,1832790783,YT -1832790784,1832794111,FR -1832794112,1832794879,GP -1832794880,1832795391,FR -1832795392,1832795647,GF -1832795648,1832796415,FR -1832796416,1832796671,RE -1832796672,1832796927,FR +1832790784,1832794623,FR +1832794624,1832794879,GP +1832794880,1832796927,FR 1832796928,1832797183,GP -1832797184,1832798463,FR -1832798464,1832798975,GP -1832798976,1832800255,FR +1832797184,1832798719,FR +1832798720,1832799231,GP +1832799232,1832800255,FR 1832800256,1832800511,MQ 1832800512,1832800767,FR 1832800768,1832801535,MQ -1832801536,1832804351,FR -1832804352,1832804607,MQ -1832804608,1832805119,FR -1832805120,1832805631,MQ +1832801536,1832803327,FR +1832803328,1832803583,MQ +1832803584,1832804863,FR +1832804864,1832805119,MQ +1832805120,1832805375,FR +1832805376,1832805631,MQ 1832805632,1832805887,FR 1832805888,1832806399,MQ 1832806400,1832806911,GP -1832806912,1832807167,FR -1832807168,1832807935,GP -1832807936,1832812543,FR +1832806912,1832807423,FR +1832807424,1832807679,GP +1832807680,1832808191,FR +1832808192,1832808447,GP +1832808448,1832812543,FR 1832812544,1832845311,RU 1832845312,1832878079,BH 1832878080,1832910847,RU @@ -42669,7 +44338,9 @@ 1835884544,1835892735,NL 1835892736,1835909119,GB 1835909120,1835911167,RS -1835911168,1835913215,DE +1835911168,1835911555,DE +1835911556,1835911559,US +1835911560,1835913215,DE 1835913216,1835917311,RU 1835917312,1835917855,GB 1835917856,1835917863,IT @@ -42902,37 +44573,28 @@ 1836646400,1836679167,RS 1836679168,1836680703,BG 1836680704,1836681215,MK -1836681216,1836711935,BG +1836681216,1836687359,BG +1836687360,1836689151,MK +1836689152,1836711935,BG 1836711936,1836728319,UA 1836728320,1836744703,RS 1836744704,1836746495,FR 1836746496,1836746751,RE -1836746752,1836747263,FR -1836747264,1836748031,RE -1836748032,1836748287,FR -1836748288,1836748543,RE -1836748544,1836749567,FR -1836749568,1836750079,RE -1836750080,1836750335,FR -1836750336,1836750591,RE -1836750592,1836750847,FR -1836750848,1836751359,RE -1836751360,1836753919,FR -1836753920,1836754175,RE -1836754176,1836754431,FR -1836754432,1836754687,RE -1836754688,1836754943,FR -1836754944,1836755199,RE -1836755200,1836755967,FR -1836755968,1836756223,RE -1836756224,1836756479,FR -1836756480,1836756735,RE -1836756736,1836758015,FR -1836758016,1836758271,RE -1836758272,1836760063,FR -1836760064,1836760319,RE -1836760320,1836760831,FR -1836760832,1836761087,RE +1836746752,1836748543,FR +1836748544,1836748799,RE +1836748800,1836749567,FR +1836749568,1836749823,RE +1836749824,1836750079,FR +1836750080,1836750847,RE +1836750848,1836751103,FR +1836751104,1836751615,RE +1836751616,1836754175,FR +1836754176,1836754687,RE +1836754688,1836755711,FR +1836755712,1836755967,RE +1836755968,1836759039,FR +1836759040,1836759295,RE +1836759296,1836761087,FR 1836761088,1836777471,IR 1836777472,1836793855,SI 1836793856,1836794567,GB @@ -43058,7 +44720,11 @@ 1839628288,1839661055,RO 1839661056,1839686655,UA 1839686656,1839687167,ES -1839687168,1839693055,UA +1839687168,1839688191,UA +1839688192,1839688703,ES +1839688704,1839689983,UA +1839689984,1839690239,ES +1839690240,1839693055,UA 1839693056,1839693311,ES 1839693312,1839693823,UA 1839693824,1839726591,RU @@ -43194,20 +44860,19 @@ 1842044928,1842053119,GB 1842053120,1842069503,IR 1842069504,1842077695,RU -1842077696,1842078207,FR -1842078208,1842078463,MQ -1842078464,1842079231,FR -1842079232,1842079743,MQ -1842079744,1842080255,GP -1842080256,1842080767,MQ +1842077696,1842078463,FR +1842078464,1842078719,MQ +1842078720,1842079231,FR +1842079232,1842079487,MQ +1842079488,1842079743,FR +1842079744,1842079999,GP +1842080000,1842080767,MQ 1842080768,1842081023,GP 1842081024,1842081791,MQ 1842081792,1842082047,GP -1842082048,1842082815,MQ -1842082816,1842083327,GP -1842083328,1842084607,MQ -1842084608,1842084863,GP -1842084864,1842085887,MQ +1842082048,1842083327,MQ +1842083328,1842083583,GP +1842083584,1842085887,MQ 1842085888,1842118655,GB 1842118656,1842151423,FI 1842151424,1842153471,FR @@ -43304,7 +44969,9 @@ 1843789824,1843806207,SK 1843806208,1843822591,IR 1843822592,1843838975,RU -1843838976,1843846911,DE +1843838976,1843840767,DE +1843840768,1843841023,SE +1843841024,1843846911,DE 1843846912,1843847167,IR 1843847168,1843853055,DE 1843853056,1843853311,IR @@ -43567,13 +45234,7 @@ 1848393728,1848401919,JP 1848401920,1848406015,PH 1848406016,1848410111,NP -1848410112,1848411135,JP -1848411136,1848411391,PH -1848411392,1848412415,JP -1848412416,1848412671,PH -1848412672,1848413439,JP -1848413440,1848413951,PH -1848413952,1848414207,JP +1848410112,1848414207,PH 1848414208,1848418303,CN 1848418304,1848420351,AU 1848420352,1848422399,ID @@ -43688,12 +45349,11 @@ 1860733952,1860734975,AU 1860734976,1860735999,NZ 1860736000,1860737023,AU -1860737024,1860743167,JP -1860743168,1860743333,AU -1860743334,1860743334,HK -1860743335,1860743462,AU -1860743463,1860743464,JP -1860743465,1860744191,AU +1860737024,1860739071,JP +1860739072,1860743167,PH +1860743168,1860743423,HK +1860743424,1860743679,JP +1860743680,1860744191,AU 1860744192,1860745215,IN 1860745216,1860746239,AU 1860746240,1860747263,PK @@ -43807,19 +45467,31 @@ 1876557824,1876688895,KR 1876688896,1876754431,AU 1876754432,1876756479,BD -1876756480,1876761599,SG +1876756480,1876760575,SG +1876760576,1876761119,JP +1876761120,1876761215,SG +1876761216,1876761599,JP 1876761600,1876761855,CN -1876761856,1876762623,SG +1876761856,1876762111,HK +1876762112,1876762623,SG 1876762624,1876764671,KR 1876764672,1876765695,ID 1876765696,1876766719,SG 1876766720,1876768767,MY 1876768768,1876769791,AU 1876769792,1876770815,JP -1876770816,1876785407,SG -1876785408,1876785439,HK -1876785440,1876787199,SG +1876770816,1876772351,HK +1876772352,1876773887,SG +1876773888,1876774911,HK +1876774912,1876783103,SG +1876783104,1876784127,HK +1876784128,1876785151,SG +1876785152,1876786175,HK +1876786176,1876787199,SG 1876787200,1876885503,CN +1876885504,1876886527,IN +1876886528,1876890623,CN +1876890624,1876893695,IN 1876893696,1876901887,TH 1876901888,1876918271,SG 1876918272,1876934655,LK @@ -43867,8 +45539,7 @@ 1884291072,1885863935,CN 1885863936,1885995007,TW 1885995008,1886191615,KR -1886191616,1886195455,JP -1886195456,1886195711,PH +1886191616,1886195711,PH 1886195712,1886197759,ID 1886197760,1886199807,JP 1886199808,1886207999,KR @@ -43949,7 +45620,9 @@ 1896603648,1896605695,IN 1896605696,1896606719,AU 1896606720,1896607743,MY -1896607744,1896609791,VU +1896607744,1896609023,VU +1896609024,1896609279,AU +1896609280,1896609791,VU 1896609792,1896611839,SG 1896611840,1897070591,CN 1897070592,1897136127,IN @@ -43966,7 +45639,9 @@ 1897170944,1897172991,ID 1897172992,1897175039,PH 1897175040,1897176063,JP -1897177088,1897201663,JP +1897176064,1897177087,SG +1897177088,1897185279,PH +1897185280,1897201663,JP 1897201664,1897209855,KR 1897209856,1897213951,AU 1897213952,1897218047,JP @@ -43987,13 +45662,13 @@ 1897660416,1897725951,HK 1897725952,1897726463,US 1897726464,1897726527,JP -1897726528,1897730047,US -1897730048,1897730303,AU -1897730304,1897730559,US +1897726528,1897730559,US 1897730560,1897730815,AU 1897730816,1897735295,US 1897735296,1897735423,HK -1897735424,1897758719,US +1897735424,1897746431,US +1897746432,1897746687,CN +1897746688,1897758719,US 1897758720,1897779199,KR 1897779200,1897781247,AU 1897781248,1897783295,JP @@ -44068,7 +45743,10 @@ 1908756480,1908760575,KR 1908760576,1908761599,NZ 1908761600,1908762623,CN -1908762624,1908763647,IN +1908762624,1908762879,IN +1908762880,1908763135,US +1908763136,1908763391,AU +1908763392,1908763647,US 1908763648,1908764671,ID 1908764672,1908768767,AU 1908768768,1908801535,JP @@ -44110,6 +45788,10 @@ 1914437632,1914503167,CN 1914503168,1914552319,KR 1914552320,1914560511,SG +1914560512,1914564607,IN +1914564608,1914566655,TW +1914566656,1914567679,IN +1914567680,1914568703,MY 1914568704,1914576895,KR 1914576896,1914580991,TW 1914580992,1914585087,KR @@ -44141,7 +45823,9 @@ 1916272640,1916534783,ID 1916534784,1917124607,CN 1917124608,1917169663,JP -1917169664,1917181951,NC +1917169664,1917172223,NC +1917172224,1917172479,FR +1917172480,1917181951,NC 1917181952,1917190143,IN 1917190144,1917321215,KR 1917321216,1917779967,AU @@ -44155,7 +45839,9 @@ 1919811584,1919815679,CN 1919815680,1919817727,ID 1919817728,1919819775,KR -1919819776,1919821823,NZ +1919819776,1919820543,NZ +1919820544,1919820799,AU +1919820800,1919821823,NZ 1919821824,1919823871,ID 1919823872,1919827967,JP 1919827968,1919844351,CN @@ -44171,8 +45857,8 @@ 1920002048,1920003071,CN 1920003072,1920008191,HK 1920008192,1920057343,CN -1920057344,1920058111,HK -1920058112,1920069631,CN +1920057344,1920058367,HK +1920058368,1920069631,CN 1920069632,1920071167,HK 1920071168,1920072703,CN 1920072704,1920073727,HK @@ -44219,7 +45905,9 @@ 1921867776,1921871871,AU 1921871872,1921872895,US 1921872896,1921873663,NZ -1921873664,1921875967,US +1921873664,1921874175,US +1921874176,1921874687,NZ +1921874688,1921875967,US 1921875968,1921892351,CN 1921892352,1921896447,AU 1921896448,1921898495,SG @@ -44229,7 +45917,6 @@ 1921943552,1921945599,IN 1921945600,1921949695,HK 1921949696,1921949951,AU -1921950464,1921950719,AU 1921950976,1921951231,AU 1921953792,1921957887,JP 1921957888,1921974271,GU @@ -44267,6 +45954,10 @@ 1931739136,1932001279,JP 1932001280,1932132351,KR 1932132352,1932140543,AU +1932140544,1932145663,IN +1932145664,1932146687,BD +1932146688,1932147711,CN +1932147712,1932148735,HK 1932148736,1932152831,PK 1932152832,1932156927,TW 1932156928,1932161023,JP @@ -44373,7 +46064,10 @@ 1940357120,1940389887,JP 1940389888,1940914175,CN 1940914176,1941045247,JP -1941045248,1941049343,HK +1941045248,1941045759,HK +1941045760,1941046783,JP +1941046784,1941048319,HK +1941048320,1941049343,SG 1941049344,1941051391,AU 1941051392,1941052415,KH 1941052416,1941053439,AU @@ -44407,13 +46101,16 @@ 1946161152,1946163199,AU 1946163200,1946165247,CN 1946165248,1946173439,PK -1946173440,1946173695,PG +1946173440,1946173567,PG +1946173568,1946173599,HK +1946173600,1946173695,PG 1946173696,1946173951,TW 1946173952,1946174463,SG -1946174464,1946174719,TW -1946174720,1946175487,SG +1946174464,1946174727,TW +1946174728,1946175487,SG 1946175488,1946175615,HK -1946175616,1946175999,SG +1946175616,1946175743,CN +1946175744,1946175999,SG 1946176000,1946176255,JP 1946176256,1946176511,SG 1946176512,1946176767,AU @@ -44442,14 +46139,14 @@ 1949440000,1949442047,ID 1949442048,1949446143,TW 1949446144,1949448191,JP -1949448192,1949449139,AU -1949449140,1949449140,IN -1949449141,1949449395,AU +1949448192,1949448447,IN +1949448448,1949448703,HK +1949448704,1949448959,AU +1949448960,1949449395,IN 1949449396,1949449396,HK -1949449397,1949449471,AU +1949449397,1949449471,IN 1949449472,1949449727,JP -1949449728,1949450239,AU -1949450240,1949466623,IN +1949449728,1949466623,IN 1949466624,1949499391,PH 1949499392,1949564927,SG 1949564928,1949958143,CN @@ -44464,8 +46161,10 @@ 1950089216,1950351359,CN 1950351360,1950482431,JP 1950482432,1950515199,CN -1950515200,1950517247,IN -1950517248,1950518271,US +1950515200,1950515711,IN +1950515712,1950516223,US +1950516224,1950516735,IN +1950516736,1950518271,US 1950518272,1950519295,IN 1950519296,1950520319,US 1950520320,1950521343,PH @@ -44556,7 +46255,7 @@ 1958845952,1958846463,HK 1958846464,1958847487,IN 1958847488,1958848511,CN -1958848512,1958850559,BD +1958848512,1958848767,BD 1958850560,1958852607,CN 1958852608,1958853631,AU 1958853632,1958854655,ID @@ -44570,7 +46269,11 @@ 1959104512,1959106559,AU 1959108608,1959110655,CN 1959110656,1959112703,JP -1959112704,1959114751,HK +1959112704,1959113215,HK +1959113216,1959113471,IN +1959113472,1959113727,HK +1959113728,1959113983,CN +1959113984,1959114751,HK 1959114752,1959115007,IN 1959115008,1959116287,HK 1959116288,1959116543,AU @@ -44617,7 +46320,8 @@ 1960210432,1960210943,TH 1960210944,1960211455,SG 1960211456,1960211903,AU -1960211904,1960212479,SG +1960211904,1960211967,SG +1960211968,1960212479,AU 1960212480,1960212582,IN 1960212583,1960212583,SG 1960212584,1960212735,IN @@ -44666,9 +46370,8 @@ 1964138496,1964146687,HK 1964146688,1964171263,JP 1964171264,1964173311,BD -1964173312,1964173776,AU -1964173777,1964173777,JP -1964173778,1964173823,AU +1964173312,1964173567,AU +1964173568,1964173823,JP 1964173824,1964174079,HK 1964174080,1964174335,AU 1964174336,1964174591,SG @@ -44745,7 +46448,9 @@ 1969707008,1969709055,MH 1969709056,1969713151,TW 1969713152,1969715199,AU -1969715200,1969717247,IN +1969715200,1969716223,SG +1969716224,1969716735,HK +1969716736,1969717247,IN 1969717248,1969721343,CN 1969721344,1969725439,HK 1969725440,1969727487,JP @@ -44756,8 +46461,10 @@ 1969790976,1969793023,AU 1969793024,1969795071,CN 1969795072,1969797119,NZ -1969797120,1969798143,SG -1969798144,1969799167,HK +1969797120,1969797631,SG +1969797632,1969798143,BD +1969798144,1969798399,CN +1969798400,1969799167,HK 1969799168,1969807359,ID 1969807360,1969809407,AF 1969809408,1969811455,IN @@ -44771,9 +46478,10 @@ 1970800640,1970802943,AU 1970802944,1970803199,SG 1970803200,1970803711,AU -1970803712,1970803967,HK -1970803968,1970804479,AU -1970804480,1970804735,SG +1970803712,1970804223,HK +1970804224,1970804519,AU +1970804520,1970804520,SG +1970804521,1970804735,AU 1970804736,1970806783,KH 1970806784,1970808831,NZ 1970808832,1970810879,AU @@ -44849,6 +46557,11 @@ 1986461696,1986496511,JP 1986496512,1986498559,BT 1986498560,1986502655,HK +1986502656,1986503679,IN +1986503680,1986507775,CN +1986507776,1986508799,SG +1986508800,1986509823,AU +1986509824,1986510847,JP 1986510848,1986519039,KR 1986519040,1986523135,PK 1986523136,1986523904,HK @@ -44862,7 +46575,6 @@ 1986762752,1986764799,JP 1986764800,1986768895,KR 1986768896,1986769919,SG -1986769920,1986770943,IR 1986770944,1986772991,AU 1986772992,1986789375,MY 1986789376,1987051519,JP @@ -44886,9 +46598,7 @@ 1989662720,1989663743,AU 1989663744,1989664767,ID 1989664768,1990197247,JP -1990197248,1990448639,TW -1990448640,1990448895,CN -1990448896,1990983679,TW +1990197248,1990983679,TW 1990983680,1991245823,TH 1991245824,1991311359,KR 1991311360,1991376895,JP @@ -44947,7 +46657,9 @@ 1997406208,1997471743,TW 1997471744,1997479935,NZ 1997479936,1997488127,JP -1997488128,1997492223,AU +1997488128,1997488383,AU +1997488384,1997488639,NZ +1997488640,1997492223,AU 1997492224,1997496319,KH 1997496320,1997500415,AU 1997500416,1997504511,JP @@ -44985,7 +46697,9 @@ 1998272432,1998272447,JP 1998272448,1998272547,SG 1998272548,1998272551,JP -1998272552,1998274559,SG +1998272552,1998274047,SG +1998274048,1998274303,US +1998274304,1998274559,SG 1998274560,1998454783,CN 1998454784,1998456831,AU 1998456832,1998458879,JP @@ -45072,7 +46786,9 @@ 2001829888,2001841247,HK 2001841248,2001841248,SA 2001841249,2001846271,HK -2001846272,2001855231,SG +2001846272,2001855119,SG +2001855120,2001855135,US +2001855136,2001855231,SG 2001855232,2001855263,US 2001855264,2001855743,SG 2001855744,2001855999,HK @@ -45094,8 +46810,7 @@ 2001859072,2001859327,HK 2001859328,2001860015,SG 2001860016,2001860031,US -2001860032,2001860047,HK -2001860048,2001860143,SG +2001860032,2001860143,SG 2001860144,2001860159,US 2001860160,2001860263,SG 2001860264,2001860271,US @@ -45176,7 +46891,8 @@ 2007023616,2007025663,IN 2007025664,2007027711,CN 2007027712,2007031807,TH -2007031808,2007035903,AU +2007031808,2007033855,NZ +2007033856,2007035903,AU 2007035904,2007039999,TW 2007040000,2007048191,KR 2007048192,2007064575,AU @@ -45274,8 +46990,8 @@ 2019035136,2019037183,CN 2019037184,2019041279,JP 2019041280,2019045375,IN -2019045376,2019045887,US -2019045888,2019049471,JP +2019045376,2019045631,US +2019045632,2019049471,JP 2019049472,2019078143,AU 2019078144,2019082239,IN 2019082240,2019098623,HK @@ -45343,7 +47059,15 @@ 2030436352,2030567423,SG 2030567424,2032926719,CN 2032926720,2033057791,AU -2033057792,2033319935,CN +2033057792,2033074175,CN +2033074176,2033075199,PK +2033075200,2033077247,BD +2033077248,2033078271,CN +2033078272,2033079295,HK +2033079296,2033088511,IN +2033088512,2033089535,AU +2033089536,2033090559,IN +2033090560,2033319935,CN 2033319936,2033321983,IN 2033321984,2033324031,CN 2033324032,2033328127,KR @@ -45483,9 +47207,18 @@ 2050091008,2050097151,JP 2050097152,2050101247,SG 2050101248,2050113535,JP -2050113536,2050129663,SG -2050129664,2050129727,JP -2050129728,2050129919,SG +2050113536,2050122239,SG +2050122240,2050122495,JP +2050122496,2050122751,SG +2050122752,2050122879,JP +2050122880,2050126079,SG +2050126080,2050126207,JP +2050126208,2050126591,SG +2050126592,2050126719,JP +2050126720,2050126783,SG +2050126784,2050126975,JP +2050126976,2050129663,SG +2050129664,2050129919,JP 2050129920,2050162687,IN 2050162688,2050228223,CN 2050228224,2050490367,PH @@ -45611,7 +47344,7 @@ 2060062720,2060066815,JP 2060066816,2060075007,KR 2060075008,2060083199,AU -2060083200,2060091391,JP +2060083200,2060091391,PH 2060091392,2060189695,KR 2060189696,2060451839,CN 2060451840,2061500415,JP @@ -45639,10 +47372,8 @@ 2063118080,2063118335,PH 2063118336,2063118591,IN 2063118592,2063119871,JP -2063119872,2063120127,IN -2063120128,2063120895,JP -2063120896,2063121151,AU -2063121152,2063122431,JP +2063119872,2063120383,IN +2063120384,2063122431,JP 2063122432,2063138815,SG 2063138816,2063335423,JP 2063335424,2063341567,AU @@ -45658,7 +47389,11 @@ 2063392768,2063400959,IN 2063400960,2063466495,JP 2063466496,2063482879,TW -2063482880,2063499263,MN +2063482880,2063483135,MN +2063483136,2063483391,JP +2063483392,2063486975,MN +2063486976,2063487231,JP +2063487232,2063499263,MN 2063499264,2063532031,KR 2063532032,2063548415,LK 2063548416,2063550463,CN @@ -45854,8 +47589,10 @@ 2082340864,2082406399,IN 2082406400,2082471935,CN 2082471936,2083007231,JP -2083007232,2083007999,US -2083008000,2083024895,JP +2083007232,2083007487,US +2083007488,2083008511,JP +2083008512,2083008767,US +2083008768,2083024895,JP 2083024896,2083053567,CN 2083053568,2083057663,TH 2083057664,2083058687,CN @@ -45906,14 +47643,19 @@ 2087464960,2087467007,KH 2087467008,2087471103,JP 2087471104,2087472127,SG -2087472128,2087476223,HK +2087472128,2087472639,HK +2087472640,2087473151,SG +2087473152,2087474687,HK +2087474688,2087475199,JP +2087475200,2087476223,HK 2087476224,2087477247,TW 2087477248,2087478271,AU 2087478272,2087485439,HK 2087485440,2087501823,TW 2087501824,2087518207,JP 2087518208,2087519231,TH -2087519232,2087520255,SG +2087519232,2087519999,SG +2087520000,2087520255,PH 2087520256,2087522303,FM 2087524352,2087526399,TH 2087526400,2087534591,PK @@ -45991,7 +47733,9 @@ 2094596096,2094628863,PH 2094628864,2094645247,HK 2094645248,2094653439,KR -2094653440,2094661631,MY +2094653440,2094656767,MY +2094656768,2094657535,SG +2094657536,2094661631,MY 2094661632,2094759935,TW 2094759936,2094792703,JP 2094792704,2096152575,CN @@ -46092,8 +47836,8 @@ 2111275008,2111307775,HK 2111307776,2111832063,CN 2111832064,2112082431,TW -2112082432,2112083199,CN -2112083200,2112487423,TW +2112082432,2112082943,CN +2112082944,2112487423,TW 2112487424,2112618495,VN 2112618496,2112880639,NZ 2112880640,2113560063,KR @@ -46105,9 +47849,9 @@ 2113685664,2113685695,SG 2113685696,2113687295,JP 2113687296,2113687551,AU -2113687552,2113687807,JP -2113687808,2113688063,AU -2113688064,2113688959,JP +2113687552,2113687999,JP +2113688000,2113688031,AU +2113688032,2113688959,JP 2113688960,2113688991,SG 2113688992,2113691135,JP 2113691136,2113691391,SG @@ -46131,7 +47875,9 @@ 2113813504,2113830911,AU 2113830912,2113863679,CN 2113863680,2113929215,AU -2113929216,2130706431,JP +2113929216,2119228927,JP +2119228928,2119229183,ES +2119229184,2130706431,JP 2147483648,2147485695,RO 2147485696,2147487743,DK 2147487744,2147489791,NO @@ -46161,10 +47907,12 @@ 2147528704,2147532799,CZ 2147532800,2147534847,DE 2147534848,2147536895,CY -2147536896,2147538431,GR +2147536896,2147537151,GR +2147537152,2147537407,CY +2147537408,2147538431,GR 2147538432,2147538943,CY -2147538944,2147540991,GR -2147540992,2147549183,CY +2147538944,2147540479,GR +2147540480,2147549183,CY 2147549184,2147942399,US 2147942400,2148007935,DE 2148007936,2148532223,US @@ -46187,9 +47935,7 @@ 2151778304,2151780351,RU 2151780352,2151782399,DE 2151782400,2151784447,ES -2151784448,2151788479,IR -2151788480,2151788495,IQ -2151788496,2151792639,IR +2151784448,2151792639,IR 2151792640,2151794687,CH 2151794688,2151796735,IT 2151796736,2151797759,DE @@ -46215,9 +47961,12 @@ 2153385920,2153385983,US 2153385984,2153387007,GB 2153387008,2153387263,CH -2153387264,2153387775,US +2153387264,2153387519,IS +2153387520,2153387775,IE 2153387776,2153388031,CH -2153388032,2153396991,US +2153388032,2153388287,ES +2153388288,2153388543,PL +2153388544,2153396991,US 2153396992,2153397247,IL 2153397248,2153397503,IN 2153397504,2153397759,SA @@ -46372,7 +48121,9 @@ 2168651776,2168717311,GB 2168717312,2168782847,US 2168782848,2168913919,DE -2168913920,2169372671,US +2168913920,2169235967,US +2169235968,2169236031,NL +2169236032,2169372671,US 2169372672,2169438207,AU 2169438208,2170028031,US 2170028032,2170093567,FR @@ -46455,7 +48206,21 @@ 2180448256,2180513791,DE 2180513792,2180579327,US 2180579328,2180644863,JP -2180644864,2180907007,US +2180644864,2180645417,US +2180645418,2180645418,ES +2180645419,2180645769,US +2180645770,2180645770,DE +2180645771,2180645991,US +2180645992,2180645992,ES +2180645993,2180646024,US +2180646025,2180646025,GB +2180646026,2180646616,US +2180646617,2180646617,DE +2180646618,2180646952,US +2180646953,2180646953,ES +2180646954,2180649005,US +2180649006,2180649006,ES +2180649007,2180907007,US 2180907008,2180972543,KR 2180972544,2181038079,US 2181038080,2181040127,GB @@ -46563,9 +48328,9 @@ 2188725248,2188725503,GB 2188725504,2188728319,US 2188728320,2188728575,GB -2188728576,2188729855,US -2188729856,2188730111,ES -2188730112,2188736511,US +2188728576,2188729599,US +2188729600,2188730367,ES +2188730368,2188736511,US 2188736512,2188736767,GB 2188736768,2188738306,US 2188738307,2188738307,GB @@ -46573,7 +48338,9 @@ 2188749184,2188749311,SL 2188749312,2188754431,US 2188754432,2188754687,RU -2188754688,2188902399,US +2188754688,2188763647,US +2188763648,2188763903,IT +2188763904,2188902399,US 2188902400,2188967935,FR 2188967936,2189099007,US 2189099008,2189164543,NZ @@ -46627,7 +48394,9 @@ 2193209344,2193211391,FR 2193211392,2193223423,BG 2193223424,2193223679,GB -2193223680,2193227775,BG +2193223680,2193226495,BG +2193226496,2193226751,GB +2193226752,2193227775,BG 2193227776,2193293311,IT 2193293312,2193358847,US 2193358848,2193424383,FI @@ -47001,7 +48770,11 @@ 2214068224,2214133759,JP 2214133760,2214264831,US 2214264832,2214330367,GB -2214330368,2214461439,US +2214330368,2214429375,US +2214429376,2214429439,NL +2214429440,2214441791,US +2214441792,2214441823,NL +2214441824,2214461439,US 2214461440,2214526975,FR 2214526976,2214527999,BR 2214528000,2214529023,AR @@ -47084,7 +48857,95 @@ 2230607872,2230637567,GB 2230637568,2230638591,SG 2230638592,2230648831,GB -2230648832,2230714367,US +2230648832,2230649695,US +2230649696,2230649727,IE +2230649728,2230653063,US +2230653064,2230653135,BR +2230653136,2230655559,US +2230655560,2230655711,IE +2230655712,2230655775,US +2230655776,2230655791,IE +2230655792,2230658143,US +2230658144,2230658159,AT +2230658160,2230658175,IE +2230658176,2230665295,US +2230665296,2230665359,SG +2230665360,2230666031,US +2230666032,2230666063,SG +2230666064,2230666479,US +2230666480,2230666495,NL +2230666496,2230666559,SG +2230666560,2230672407,US +2230672408,2230672415,IE +2230672416,2230672431,US +2230672432,2230672575,IE +2230672576,2230681599,US +2230681600,2230682247,HK +2230682248,2230682343,JP +2230682344,2230682351,HK +2230682352,2230682383,JP +2230682384,2230682415,HK +2230682416,2230682431,JP +2230682432,2230682511,HK +2230682512,2230682543,JP +2230682544,2230682607,US +2230682608,2230685695,HK +2230685696,2230685727,AT +2230685728,2230685759,HK +2230685760,2230685855,JP +2230685856,2230685903,HK +2230685904,2230685935,US +2230685936,2230687743,HK +2230687744,2230688255,US +2230688256,2230688767,SG +2230688768,2230689791,BR +2230689792,2230689999,SG +2230690000,2230690007,AU +2230690008,2230690463,SG +2230690464,2230690639,AU +2230690640,2230690679,SG +2230690680,2230690823,AU +2230690824,2230690831,SG +2230690832,2230690863,AU +2230690864,2230690959,SG +2230690960,2230690975,AU +2230690976,2230691007,SG +2230691008,2230691039,MY +2230691040,2230691071,AU +2230691072,2230691199,SG +2230691200,2230691215,AU +2230691216,2230693887,SG +2230693888,2230693919,NL +2230693920,2230694063,US +2230694064,2230694095,NL +2230694096,2230697983,US +2230697984,2230698903,NL +2230698904,2230698999,FI +2230699000,2230699007,NL +2230699008,2230699039,FI +2230699040,2230702079,NL +2230702080,2230707199,IE +2230707200,2230707711,NL +2230707712,2230710671,US +2230710672,2230710719,BR +2230710720,2230710735,US +2230710736,2230710751,BR +2230710752,2230710783,KR +2230710784,2230710799,US +2230710800,2230710831,BR +2230710832,2230710847,US +2230710848,2230710879,BR +2230710880,2230711599,US +2230711600,2230711615,IN +2230711616,2230711631,US +2230711632,2230711695,IN +2230711696,2230713663,US +2230713664,2230713695,HK +2230713696,2230714047,US +2230714048,2230714079,BR +2230714080,2230714255,US +2230714256,2230714287,BR +2230714288,2230714367,US 2230714368,2230779903,CA 2230779904,2230910975,MX 2230910976,2231042047,US @@ -47219,7 +49080,11 @@ 2256551936,2256601087,GB 2256601088,2256666623,US 2256666624,2256732159,DE -2256732160,2257190911,US +2256732160,2256805375,US +2256805376,2256805631,CA +2256805632,2256812031,US +2256812032,2256812287,GB +2256812288,2257190911,US 2257190912,2257256447,SE 2257256448,2257453055,US 2257453056,2257518591,GB @@ -47386,11 +49251,13 @@ 2258608656,2258608663,JP 2258608664,2258608671,AU 2258608672,2258608687,JP -2258608688,2258610179,AU +2258608688,2258610175,AU +2258610176,2258610179,GB 2258610180,2258610183,IN -2258610184,2258610239,AU +2258610184,2258610239,GB 2258610240,2258610303,IN -2258610304,2258610703,AU +2258610304,2258610431,GB +2258610432,2258610703,AU 2258610704,2258610719,TW 2258610720,2258610751,AU 2258610752,2258610755,TW @@ -47420,13 +49287,32 @@ 2258632704,2258698239,JP 2258698240,2259222527,US 2259222528,2259288063,DE -2259288064,2259304703,US -2259304704,2259304719,NL -2259304720,2259343391,US -2259343392,2259343423,HK -2259343424,2259343743,US -2259343744,2259343775,BR -2259343776,2259353599,US +2259288064,2259298303,US +2259298304,2259300351,IE +2259300352,2259304447,US +2259304448,2259308543,NL +2259308544,2259312639,IE +2259312640,2259314687,NL +2259314688,2259320831,US +2259320832,2259322879,SG +2259322880,2259324927,HK +2259324928,2259331071,US +2259331072,2259333119,IE +2259333120,2259337215,US +2259337216,2259339263,HK +2259339264,2259340287,US +2259340288,2259340799,NL +2259340800,2259341311,IE +2259341312,2259342335,US +2259342336,2259342847,NL +2259342848,2259343359,IE +2259343360,2259343615,HK +2259343616,2259343871,BR +2259343872,2259348479,US +2259348480,2259348991,NL +2259348992,2259352575,US +2259352576,2259353343,IE +2259353344,2259353599,US 2259353600,2259419135,DE 2259419136,2259615743,US 2259681280,2259746815,DE @@ -47453,7 +49339,9 @@ 2261254144,2261385215,US 2261385216,2261450751,PR 2261450752,2261516287,NL -2261516288,2261647359,US +2261516288,2261569535,US +2261569536,2261569791,TH +2261569792,2261647359,US 2261647360,2261712895,FR 2261712896,2261778431,US 2261778432,2261843967,TW @@ -47530,23 +49418,19 @@ 2280982528,2280982783,US 2280982784,2280983039,FR 2280983040,2280983295,US -2280983296,2280992779,FR -2280992780,2280992781,CA -2280992782,2280993023,FR -2280993024,2280993035,CA -2280993036,2280993036,US -2280993037,2280993279,CA +2280983296,2280992767,FR +2280992768,2280993279,US 2280993280,2280998911,FR 2280998912,2280999167,US 2280999168,2281007103,FR 2281007104,2281007359,IN 2281007360,2281023487,FR 2281023488,2281023743,IN -2281023744,2281701375,FR +2281023744,2281037823,FR +2281037824,2281038079,US +2281038080,2281701375,FR 2281701376,2281705471,CH -2281705472,2281705727,US -2281705728,2281705983,CN -2281705984,2282226175,US +2281705472,2282226175,US 2282226176,2282226243,AU 2282226244,2282226245,US 2282226246,2282226246,AU @@ -47600,7 +49484,9 @@ 2297233408,2297298943,US 2297298944,2297364479,CH 2297364480,2297626623,US -2297626624,2297692159,DE +2297626624,2297661437,DE +2297661438,2297661438,NL +2297661439,2297692159,DE 2297692160,2299461631,US 2299461632,2299527167,CA 2299527168,2299592703,US @@ -47626,13 +49512,41 @@ 2302349312,2302351359,HK 2302351360,2302357503,VN 2302357504,2302358527,BD -2302358528,2302363647,IN -2302363648,2302364671,JP -2302364672,2302365695,IN +2302358528,2302365695,IN 2302365696,2302366719,HK 2302366720,2302367743,IN 2302367744,2302368767,CN -2302368768,2302369791,IN +2302368768,2302370815,IN +2302370816,2302371839,HK +2302371840,2302372863,VN +2302372864,2302373887,MY +2302373888,2302374911,TH +2302374912,2302375935,VN +2302375936,2302376959,AF +2302376960,2302377983,ID +2302377984,2302382079,IN +2302382080,2302383103,PK +2302383104,2302384127,HK +2302384128,2302385151,BD +2302385152,2302386175,IN +2302386176,2302387199,ID +2302387200,2302388223,IN +2302388224,2302389247,NZ +2302389248,2302391295,IN +2302391296,2302392319,BD +2302392320,2302393343,HK +2302393344,2302394367,AU +2302394368,2302395391,PK +2302395392,2302396415,AU +2302396416,2302398463,IN +2302398464,2302399487,HK +2302399488,2302400511,IN +2302400512,2302404607,PK +2302404608,2302405631,JP +2302405632,2302406655,HK +2302406656,2302408703,IN +2302408704,2302409727,AU +2302409728,2302410751,JP 2302410752,2302541823,SE 2302541824,2302607359,CH 2302607360,2302625761,SC @@ -47666,10 +49580,15 @@ 2305687552,2305753087,US 2305753088,2305818623,AU 2305818624,2306015231,US -2306080768,2306129919,US +2306080768,2306113535,US +2306113536,2306121727,SG +2306121728,2306125823,HK +2306125824,2306129919,US 2306129920,2306138111,NL 2306138112,2306146303,IE -2306146304,2306342911,US +2306146304,2306179071,US +2306179072,2306211839,NL +2306211840,2306342911,US 2306342912,2306408447,NL 2306408448,2306473983,FR 2306473984,2306539519,CA @@ -47678,7 +49597,9 @@ 2306998272,2307129343,US 2307129344,2307194879,SG 2307194880,2307260415,NO -2307260416,2307522559,US +2307260416,2307358719,US +2307358720,2307391487,IE +2307391488,2307522559,US 2307522560,2307588095,CH 2307588096,2308112383,US 2308112384,2308177919,AU @@ -47774,8 +49695,9 @@ 2316042240,2316173311,US 2316173312,2316238847,SE 2316238848,2316500991,US -2316500992,2316533759,AU -2316533760,2316566527,HK +2316500992,2316505855,HK +2316505856,2316506111,AU +2316506112,2316566527,HK 2316566528,2316613887,US 2316613888,2316614143,GB 2316614144,2316632063,US @@ -47858,7 +49780,7 @@ 2319164416,2319165439,PY 2319165440,2319167487,AR 2319167488,2319168511,HN -2319168512,2319174655,BR +2319169536,2319174655,BR 2319174656,2319175679,HN 2319175680,2319184895,BR 2319184896,2319185919,AR @@ -47881,9 +49803,11 @@ 2320433152,2320564223,AU 2320564224,2320629759,CH 2320629760,2320695295,CA -2320695296,2321223679,US -2321223680,2321227775,JP -2321227776,2321416191,US +2320695296,2321219583,US +2321219584,2321227775,JP +2321227776,2321231871,SG +2321231872,2321235967,IE +2321235968,2321416191,US 2321416192,2321417215,CO 2321417216,2321419263,BR 2321419264,2321420287,AR @@ -47898,7 +49822,9 @@ 2321447936,2321452031,BR 2321452032,2321453055,MX 2321453056,2321454079,HN -2321454080,2321471487,BR +2321454080,2321467136,BR +2321467137,2321467137,US +2321467138,2321471487,BR 2321471488,2321472511,HN 2321472512,2321477631,BR 2321477632,2321478655,TT @@ -47967,7 +49893,7 @@ 2321799168,2321800191,BZ 2321800192,2321801215,VE 2321801216,2321802239,CL -2321802240,2321804287,BR +2321803264,2321804287,BR 2321804288,2321805311,DO 2321805312,2321809407,BR 2321809408,2321874943,ES @@ -48101,9 +50027,7 @@ 2323690496,2323690751,IN 2323690752,2323699711,US 2323699712,2323700735,NL -2323700736,2323701759,US -2323701760,2323709951,VG -2323709952,2323775487,US +2323700736,2323775487,US 2323775488,2323841023,AU 2323841024,2323906559,CH 2323906560,2323972095,IT @@ -48302,6 +50226,7 @@ 2332032000,2332033023,AW 2332033024,2332098559,ID 2332098560,2332360703,DE +2332360704,2332368895,IN 2332426240,2332622847,DE 2332622848,2332688383,CN 2332688384,2332753919,NL @@ -48320,7 +50245,7 @@ 2335637504,2335768575,US 2335768576,2335834111,CA 2335834112,2335899647,SE -2335899648,2335965183,AU +2335899648,2335965183,SG 2335965184,2336161791,US 2336161792,2336227327,NL 2336292864,2336358399,US @@ -48365,9 +50290,7 @@ 2338848768,2338914303,US 2338914304,2339962879,NO 2339962880,2340028415,US -2340028416,2340081663,SE -2340081664,2340081919,BR -2340081920,2340093951,SE +2340028416,2340093951,SE 2340093952,2340159487,FI 2340159488,2340225023,FR 2340225024,2340421631,US @@ -48406,9 +50329,13 @@ 2342700248,2342700248,GB 2342700249,2342701408,US 2342701409,2342701409,GB -2342701410,2342705120,US +2342701410,2342704912,US +2342704913,2342704913,GB +2342704914,2342705120,US 2342705121,2342705121,GB -2342705122,2342715391,US +2342705122,2342706194,US +2342706195,2342706195,GB +2342706196,2342715391,US 2342715392,2342780927,AU 2342780928,2342846463,NO 2342846464,2342911999,BE @@ -48472,7 +50399,9 @@ 2355036160,2355101695,US 2355101696,2355167231,TW 2355167232,2355232767,GB -2355232768,2355691519,US +2355232768,2355467263,US +2355467264,2355467519,AU +2355467520,2355691519,US 2355691520,2355757055,IT 2355757056,2355953663,US 2355953664,2357919743,TW @@ -48599,7 +50528,10 @@ 2371289088,2371616767,DE 2371616768,2371682303,GB 2371682304,2371747839,NL -2371747840,2371878911,GB +2371747840,2371813887,GB +2371813888,2371814143,US +2371814144,2371814144,CH +2371814145,2371878911,GB 2371878912,2371944447,BE 2371944448,2372009983,GB 2372075520,2372206591,DE @@ -48653,9 +50585,7 @@ 2372507648,2372509695,IT 2372509696,2372510335,AE 2372510336,2372510336,ES -2372510337,2372510719,AE -2372510720,2372510975,AO -2372510976,2372511743,AE +2372510337,2372511743,AE 2372511744,2372513791,BA 2372513792,2372534271,GB 2372534272,2372665343,US @@ -48770,9 +50700,7 @@ 2378432512,2378498047,TR 2378498048,2378500607,US 2378500608,2378500863,GB -2378500864,2378504191,US -2378504192,2378504447,NL -2378504448,2378694655,US +2378500864,2378694655,US 2378694656,2378760191,DE 2378760192,2378825727,AT 2378825728,2378891263,US @@ -48802,15 +50730,66 @@ 2381709312,2381905919,US 2381905920,2381971455,CH 2381971456,2382036991,IT -2382036992,2382102527,US +2382036992,2382066943,US +2382066944,2382067007,IE +2382067008,2382067199,US +2382067200,2382067263,IE +2382067264,2382067455,US +2382067456,2382067519,IE +2382067520,2382067711,US +2382067712,2382067775,IE +2382067776,2382067967,US +2382067968,2382068031,IE +2382068032,2382068223,US +2382068224,2382068287,IE +2382068288,2382068479,US +2382068480,2382068543,IE +2382068544,2382068735,US +2382068736,2382068799,IE +2382068800,2382068991,US +2382068992,2382069055,IE +2382069056,2382084799,US +2382084800,2382084863,IE +2382084864,2382085055,US +2382085056,2382085119,IE +2382085120,2382085247,US +2382085248,2382085311,AT +2382085312,2382085375,IE +2382085376,2382085567,US +2382085568,2382085631,IE +2382085632,2382085823,US +2382085824,2382085887,IE +2382085888,2382086079,US +2382086080,2382086143,IE +2382086144,2382086335,US +2382086336,2382086399,IE +2382086400,2382086591,US +2382086592,2382086655,IE +2382086656,2382086847,US +2382086848,2382086911,IE +2382086912,2382087103,US +2382087104,2382087167,IE +2382087168,2382087423,US +2382087424,2382087487,SG +2382087488,2382087551,HK +2382087552,2382087615,SG +2382087616,2382087679,HK +2382087680,2382088959,SG +2382088960,2382093567,US +2382093568,2382093823,SG +2382093824,2382099455,US +2382099456,2382099583,SG +2382099584,2382099647,US +2382099648,2382099711,HK +2382099712,2382102015,US +2382102016,2382102079,IE +2382102080,2382102527,US 2382102528,2382168063,NL 2382168064,2382233599,BE 2382233600,2382299135,US 2382299136,2382331903,GR 2382331904,2382335999,FR -2382336000,2382337279,NL -2382337280,2382337535,FR -2382337536,2382340095,NL +2382336000,2382340095,NL 2382340096,2382342143,CH 2382342144,2382344191,AT 2382344192,2382346239,NL @@ -48842,7 +50821,11 @@ 2382677992,2382678015,CA 2382678016,2382678527,US 2382678528,2382679039,CA -2382679040,2382680063,US +2382679040,2382679150,US +2382679151,2382679151,IO +2382679152,2382679342,US +2382679343,2382679343,IO +2382679344,2382680063,US 2382680064,2382684159,CA 2382684160,2382692351,US 2382692352,2383085567,CA @@ -48921,7 +50904,11 @@ 2392025088,2392063999,US 2392064000,2392096767,CA 2392096768,2392129535,US -2392129536,2394947583,CA +2392129536,2393356671,CA +2393356672,2393356799,US +2393356800,2393357951,CA +2393357952,2393358079,US +2393358080,2394947583,CA 2394947584,2395013119,US 2395013120,2395209727,CA 2395209728,2395340799,US @@ -49152,7 +51139,9 @@ 2415918080,2415919103,BR 2415919104,2415984639,CN 2416050176,2416058367,US -2416058368,2416084991,NL +2416058368,2416076543,NL +2416076544,2416076799,CH +2416076800,2416084991,NL 2416084992,2416085247,AU 2416085248,2416085503,NL 2416085504,2416085759,US @@ -49166,9 +51155,7 @@ 2416377856,2416443391,CN 2416443392,2416705535,US 2416705536,2416771071,CN -2416771072,2416916479,US -2416916480,2416916735,AU -2416916736,2416967679,US +2416771072,2416967679,US 2416967680,2417033215,IN 2417033216,2417229823,US 2417229824,2417295359,ES @@ -49398,9 +51385,7 @@ 2429878272,2429943807,JP 2429943808,2430009343,HK 2430009344,2430205951,US -2430271488,2431846143,US -2431846144,2431846399,GB -2431846400,2432172031,US +2430271488,2432172031,US 2432172032,2432237567,BE 2432237568,2432616447,US 2432616448,2432617471,NL @@ -49411,9 +51396,7 @@ 2433247488,2433810431,NL 2433810432,2433875967,GB 2433875968,2435055615,NL -2435055616,2435071743,GB -2435071744,2435071999,NL -2435072000,2435121151,GB +2435055616,2435121151,GB 2435121152,2436300799,NL 2436300800,2436366335,GB 2436366336,2436759551,NL @@ -49423,11 +51406,17 @@ 2436775936,2436784127,DE 2436784128,2436825087,GB 2436825088,2441150463,NL -2441150464,2441215999,BE +2441150464,2441163519,BE +2441163520,2441163775,NL +2441163776,2441215999,BE 2441216000,2446983167,NL 2447048704,2447376383,NL -2447376384,2447441919,GB -2447441920,2447507455,DE +2447376384,2447384575,GB +2447384576,2447384831,BE +2447384832,2447441919,GB +2447441920,2447444991,DE +2447444992,2447445247,ZA +2447445248,2447507455,DE 2447507456,2447572991,FR 2447572992,2447638527,GB 2447638528,2447704063,DE @@ -49455,7 +51444,8 @@ 2448851968,2448883711,GB 2448883712,2448949247,FI 2448949248,2449014783,FR -2449014784,2449045503,RU +2449014784,2449031167,IR +2449031168,2449045503,RU 2449045504,2449080319,KZ 2449080320,2449145855,CH 2449145856,2449211391,SE @@ -49558,7 +51548,13 @@ 2454851840,2454852863,US 2454852864,2454853119,BE 2454853120,2454853375,DK -2454853376,2454887423,US +2454853376,2454855935,US +2454855936,2454856169,GB +2454856170,2454856170,US +2454856171,2454856191,GB +2454856192,2454864895,US +2454864896,2454865151,GB +2454865152,2454887423,US 2454887424,2454887679,DK 2454887680,2454905919,US 2454905920,2454905951,AR @@ -49570,7 +51566,6 @@ 2455175168,2455240703,GB 2455240704,2455244799,US 2455244800,2455245567,AU -2455245568,2455245823,SG 2455245824,2455246847,AU 2455246848,2455247871,IN 2455247872,2455248127,AU @@ -49582,7 +51577,9 @@ 2455263232,2455265279,PH 2455265280,2455273471,US 2455273472,2455275519,AU -2455275520,2455279615,US +2455275520,2455278079,US +2455278080,2455278591,NZ +2455278592,2455279615,US 2455279616,2455280127,MO 2455280128,2455280383,MY 2455280384,2455281663,MO @@ -49603,9 +51600,7 @@ 2456289280,2456354815,NL 2456354816,2456420351,GB 2456485888,2456551423,DE -2456551424,2456602623,AT -2456602624,2456602879,DE -2456602880,2456616959,AT +2456551424,2456616959,AT 2456616960,2456682495,CH 2456682496,2456748031,HU 2456748032,2456813567,US @@ -49661,9 +51656,9 @@ 2459893760,2459959295,CH 2459959296,2460024831,JP 2460024832,2460090367,FI -2460090368,2460152319,GB -2460152320,2460152575,FR -2460152576,2460155903,GB +2460090368,2460152575,GB +2460152576,2460152831,FR +2460152832,2460155903,GB 2460155904,2460221439,US 2460221440,2460286975,BR 2460286976,2460549119,US @@ -49672,9 +51667,7 @@ 2460680192,2460745727,NZ 2460745728,2460811263,NO 2460811264,2460876799,SE -2460876800,2460920319,US -2460920320,2460920575,GB -2460920576,2460942335,US +2460876800,2460942335,US 2460942336,2461007871,BE 2461007872,2461138943,GB 2461138944,2461204479,AU @@ -49688,7 +51681,9 @@ 2461605888,2461607935,LB 2461607936,2461609983,FR 2461609984,2461611007,BE -2461611008,2461612031,NL +2461611008,2461611519,NL +2461611520,2461611775,BE +2461611776,2461612031,NL 2461612032,2461613567,IL 2461613568,2461613823,PS 2461613824,2461614079,IL @@ -49819,7 +51814,9 @@ 2469134336,2469199871,SE 2469199872,2469265407,RU 2469265408,2469396479,KR -2469396480,2469658623,US +2469396480,2469527551,US +2469527552,2469593087,TH +2469593088,2469658623,US 2469658624,2469724159,GR 2469724160,2469789695,US 2469789696,2469855231,DE @@ -49828,7 +51825,9 @@ 2470248448,2470510591,US 2470510592,2470576127,BR 2470576128,2470641663,AU -2470641664,2470707199,LU +2470641664,2470703359,LU +2470703360,2470703615,BE +2470703616,2470707199,LU 2470707200,2470772735,GB 2470772736,2470838271,AU 2470838272,2471165951,US @@ -50010,9 +52009,7 @@ 2494103552,2494169087,FR 2494169088,2494562303,US 2494562304,2494627839,GB -2494627840,2494650623,US -2494650624,2494650879,BR -2494650880,2494677759,US +2494627840,2494677759,US 2494677760,2494678015,AU 2494678016,2494689791,US 2494689792,2494690047,IN @@ -50022,11 +52019,7 @@ 2495021056,2495152127,US 2495217664,2495283199,US 2495283200,2495348735,CH -2495348736,2495348991,US -2495348992,2495349051,DE -2495349052,2495349052,US -2495349053,2495349247,DE -2495349248,2495807487,US +2495348736,2495807487,US 2495807488,2495873023,AU 2495873024,2495938559,CH 2495938560,2496004095,GB @@ -50041,7 +52034,39 @@ 2499110520,2499110527,NI 2499110528,2499477503,MX 2499477504,2499543039,DE -2499543040,2499674111,GB +2499543040,2499559679,GB +2499559680,2499559935,NO +2499559936,2499560447,GB +2499560448,2499560703,NO +2499560704,2499560959,GB +2499560960,2499561215,NO +2499561216,2499561471,GB +2499561472,2499561727,NO +2499561728,2499562495,GB +2499562496,2499562751,NO +2499562752,2499563007,GB +2499563008,2499563519,NO +2499563520,2499563775,GB +2499563776,2499564031,NO +2499564032,2499564287,GB +2499564288,2499564543,NO +2499564544,2499564799,GB +2499564800,2499565311,NO +2499565312,2499568127,GB +2499568128,2499568383,NO +2499568384,2499569919,GB +2499569920,2499570431,NO +2499570432,2499570687,GB +2499570688,2499571199,NO +2499571200,2499571711,GB +2499571712,2499571967,NO +2499571968,2499572735,GB +2499572736,2499572991,NO +2499572992,2499573247,GB +2499573248,2499573503,NO +2499573504,2499573759,GB +2499573760,2499574015,NO +2499574016,2499674111,GB 2499674112,2499739647,US 2499739648,2499805183,DO 2499805184,2499870719,TR @@ -50064,8 +52089,8 @@ 2500141056,2500141311,IE 2500141312,2500141823,US 2500141824,2500142847,IE -2500142848,2500143103,US -2500143104,2500143615,IE +2500142848,2500143359,US +2500143360,2500143615,IE 2500143616,2500144895,US 2500144896,2500145151,IE 2500145152,2500149503,US @@ -50076,9 +52101,7 @@ 2500155648,2500155903,GB 2500155904,2500161023,US 2500161024,2500162047,GB -2500162048,2500162559,US -2500162560,2500162815,GB -2500162816,2500166143,US +2500162048,2500166143,US 2500166144,2500166399,GB 2500166400,2500170751,US 2500170752,2500170752,FI @@ -50088,21 +52111,25 @@ 2500180736,2500180991,HR 2500180992,2500188679,US 2500188680,2500188687,CH -2500188688,2500191231,US +2500188688,2500190975,US +2500190976,2500191103,FR +2500191104,2500191231,US 2500191232,2500191487,FR 2500191488,2500196351,US 2500196352,2500198399,FI 2500198400,2500198911,US 2500198912,2500199167,GB -2500199168,2500199471,US -2500199472,2500199475,IE -2500199476,2500201535,US +2500199168,2500199423,US +2500199424,2500199679,IE +2500199680,2500201535,US 2500201536,2500201543,GB -2500201544,2500202879,US -2500202880,2500203007,ES +2500201544,2500202751,US +2500202752,2500203007,ES 2500203008,2500209919,US 2500209920,2500210175,GB -2500210176,2500212415,US +2500210176,2500211728,US +2500211729,2500211730,SI +2500211731,2500212415,US 2500212416,2500212423,CH 2500212424,2500212991,US 2500212992,2500213247,ES @@ -50112,9 +52139,15 @@ 2500225552,2500225559,ES 2500225560,2500226615,US 2500226616,2500226623,NL -2500226624,2500230041,US +2500226624,2500227583,US +2500227584,2500227839,FR +2500227840,2500227879,US +2500227880,2500227887,FR +2500227888,2500230041,US 2500230042,2500230042,GB -2500230043,2500235775,US +2500230043,2500231679,US +2500231680,2500231935,ES +2500231936,2500235775,US 2500235776,2500236031,GB 2500236032,2500236837,US 2500236838,2500236838,ES @@ -50128,22 +52161,22 @@ 2500240384,2500240639,FR 2500240640,2500240895,US 2500240896,2500241407,FR -2500241408,2500246271,US +2500241408,2500245759,US +2500245760,2500246015,GB +2500246016,2500246271,US 2500246272,2500246527,GB 2500246528,2500247551,US 2500247552,2500248575,ES -2500248576,2500249599,US -2500249600,2500249855,ES -2500249856,2500263935,US -2500263936,2500264191,FR -2500264192,2500272127,US +2500248576,2500249343,US +2500249344,2500249855,ES +2500249856,2500272127,US 2500272128,2500272383,GB 2500272384,2500273151,US 2500273152,2500273407,GB 2500273408,2500275199,US 2500275200,2500275455,GB -2500275456,2500276223,US -2500276224,2500276735,GB +2500275456,2500275967,US +2500275968,2500276735,GB 2500276736,2500276991,US 2500276992,2500277247,GB 2500277248,2500278751,US @@ -50158,9 +52191,7 @@ 2500292608,2500292863,DE 2500292864,2500313855,US 2500313856,2500314111,AT -2500314112,2500318207,US -2500318208,2500318463,IT -2500318464,2500319439,US +2500314112,2500319439,US 2500319440,2500319471,ES 2500319472,2500319487,US 2500319488,2500321279,ES @@ -50186,19 +52217,12 @@ 2500555264,2500555519,FR 2500555520,2500558847,US 2500558848,2500559103,FR -2500559104,2500559359,US -2500559360,2500559615,FR -2500559616,2500562431,US -2500562432,2500562687,GB -2500562688,2500562719,US -2500562720,2500562727,GB -2500562728,2500562767,US -2500562768,2500562775,GB -2500562776,2500562943,US +2500559104,2500562431,US +2500562432,2500562943,GB 2500562944,2500563199,ES 2500563200,2500567039,US -2500567040,2500567295,GB -2500567296,2500568679,US +2500567040,2500567551,GB +2500567552,2500568679,US 2500568680,2500568683,GB 2500568684,2500569687,US 2500569688,2500569695,BE @@ -50206,7 +52230,9 @@ 2500591616,2500595711,GB 2500595712,2500596223,US 2500596224,2500596735,CH -2500596736,2500616191,US +2500596736,2500609023,US +2500609024,2500609279,ES +2500609280,2500616191,US 2500616192,2500616447,IT 2500616448,2500637727,US 2500637728,2500637759,GB @@ -50216,31 +52242,39 @@ 2500644864,2500645119,FR 2500645120,2500646911,US 2500646912,2500647935,ES -2500647936,2500666463,US +2500647936,2500648581,US +2500648582,2500648582,ES +2500648583,2500663295,US +2500663296,2500664319,ES +2500664320,2500666463,US 2500666464,2500666471,LU 2500666472,2500681759,US 2500681760,2500681767,PL -2500681768,2500685823,US +2500681768,2500682495,US +2500682496,2500682751,PL +2500682752,2500685823,US 2500685824,2500686079,FR 2500686080,2500687871,US 2500687872,2500689919,FR -2500689920,2500694527,US -2500694528,2500694783,IT -2500694784,2500719103,US +2500689920,2500694271,US +2500694272,2500694783,IT +2500694784,2500695039,US +2500695040,2500696063,IT +2500696064,2500719103,US 2500719104,2500721151,IE 2500721152,2500723711,US -2500723712,2500723799,GB -2500723800,2500723807,ES -2500723808,2500723967,GB +2500723712,2500723967,ES 2500723968,2500728063,US 2500728064,2500728319,GB -2500728320,2500739599,US -2500739600,2500739607,DE -2500739608,2500743215,US +2500728320,2500739583,US +2500739584,2500739839,DE +2500739840,2500743215,US 2500743216,2500743223,GB 2500743224,2500984831,US 2500984832,2501033983,GB -2501033984,2501574655,US +2501033984,2501417471,US +2501417472,2501417727,IN +2501417728,2501574655,US 2501574656,2501640191,KZ 2501640192,2502033407,US 2502033408,2502037503,LU @@ -50274,42 +52308,50 @@ 2504486912,2504491007,US 2504491008,2504499199,IT 2504499200,2504499455,US -2504499456,2504499711,IE -2504499712,2504917503,US -2504917504,2504917759,IL -2504917760,2504918642,US +2504499456,2504499967,IE +2504499968,2504918642,US 2504918643,2504918643,IL 2504918644,2504919670,US 2504919671,2504919671,IL -2504919672,2504920831,US +2504919672,2504920063,US +2504920064,2504920319,IL +2504920320,2504920831,US 2504920832,2504921087,IL -2504921088,2504923135,US -2504923136,2504923391,IL -2504923392,2504925695,US -2504925696,2504926207,IL -2504926208,2504926719,US +2504921088,2504922367,US +2504922368,2504922623,IL +2504922624,2504923135,US +2504923136,2504923647,IL +2504923648,2504926207,US +2504926208,2504926463,IL +2504926464,2504926719,US 2504926720,2504926975,IL -2504926976,2504931583,US -2504931584,2504931839,IL -2504931840,2504936191,US -2504936192,2504936447,IL -2504936448,2504938495,US +2504926976,2504928511,US +2504928512,2504928767,IL +2504928768,2504929279,US +2504929280,2504929535,IL +2504929536,2504934911,US +2504934912,2504935167,IL +2504935168,2504936447,US +2504936448,2504936703,IL +2504936704,2504938495,US 2504938496,2504938751,IL 2504938752,2504941293,US 2504941294,2504941294,IL -2504941295,2504943615,US +2504941295,2504941567,US +2504941568,2504942079,IL +2504942080,2504943615,US 2504943616,2504944639,IL -2504944640,2504945151,US -2504945152,2504945407,IL -2504945408,2504945663,US -2504945664,2504946175,IL -2504946176,2504946431,US -2504946432,2504946687,IL -2504946688,2504949503,US -2504949504,2504982527,IL +2504944640,2504945432,US +2504945433,2504945433,IL +2504945434,2504946687,US +2504946688,2504946943,IL +2504946944,2504949759,US +2504949760,2504982527,IL 2504982528,2505457663,US 2505457664,2505459711,IE -2505459712,2505469439,US +2505459712,2505465855,US +2505465856,2505467903,GB +2505467904,2505469439,US 2505469440,2505469951,ES 2505469952,2505474047,NL 2505474048,2505482239,US @@ -50331,10 +52373,8 @@ 2505803776,2506293247,US 2506293248,2506358783,CA 2506358784,2506359039,ES -2506359040,2506360063,US -2506360064,2506360319,ES -2506360320,2506360575,US -2506360576,2506361087,ES +2506359040,2506360319,US +2506360320,2506361087,ES 2506361088,2506399999,US 2506400000,2506400255,IT 2506400256,2506401791,US @@ -50363,7 +52403,9 @@ 2508081408,2508081445,IL 2508081446,2508081446,US 2508081447,2508081663,IL -2508081664,2508082431,GB +2508081664,2508081919,GB +2508081920,2508081920,NL +2508081921,2508082431,GB 2508082432,2508082943,DE 2508082944,2508083199,GB 2508083200,2508085247,IS @@ -50382,7 +52424,9 @@ 2508324864,2508455935,US 2508455936,2508521471,IT 2508521472,2508587007,CH -2508587008,2508652543,BE +2508587008,2508631295,BE +2508631296,2508631551,US +2508631552,2508652543,BE 2508652544,2508718079,AU 2508718080,2508914687,US 2508914688,2508980223,IT @@ -50488,9 +52532,7 @@ 2513502208,2513567743,NO 2513567744,2513600511,GR 2513600512,2513633279,NL -2513633280,2513672495,DE -2513672496,2513672496,US -2513672497,2513698815,DE +2513633280,2513698815,DE 2513698816,2513764351,DK 2513764352,2514419711,DE 2514419712,2514485247,GB @@ -50596,8 +52638,7 @@ 2524971008,2525036543,ES 2525036544,2525037567,IN 2525037568,2525038591,PK -2525038592,2525039359,CN -2525039360,2525039615,HK +2525038592,2525039615,NL 2525039616,2525040639,AU 2525040640,2525041151,BD 2525041152,2525041407,ID @@ -50864,7 +52905,7 @@ 2545811456,2547187711,US 2547187712,2547318783,GB 2547318784,2547515391,US -2547523584,2547524607,GB +2547523584,2547524607,DE 2547524608,2547525631,IR 2547525632,2547535871,GB 2547548160,2547580927,NO @@ -50887,7 +52928,9 @@ 2548833280,2548833791,NL 2548833792,2548834303,AT 2548834304,2548842495,GB -2548842496,2548858879,RU +2548842496,2548848639,RU +2548848640,2548848895,UA +2548848896,2548858879,RU 2548858880,2548867071,NL 2548867072,2548875263,IQ 2548875264,2548877311,KZ @@ -50912,8 +52955,7 @@ 2549614464,2549614591,SE 2549614592,2549616639,IT 2549616640,2549618687,BE -2549618688,2549618943,US -2549618944,2549620735,DE +2549618688,2549620735,DE 2549620736,2549624831,PL 2549624832,2549626879,BE 2549626880,2549628927,PL @@ -50963,11 +53005,7 @@ 2550136832,2550202367,DO 2550202368,2553544703,US 2553544704,2553610239,IN -2553610240,2554211327,US -2554211328,2554211383,SG -2554211384,2554211387,US -2554211388,2554211583,SG -2554211584,2554462207,US +2553610240,2554462207,US 2554462208,2554527743,HU 2554527744,2554789887,US 2554789888,2554855423,GB @@ -51010,9 +53048,7 @@ 2557870080,2557935615,ID 2557935616,2558658499,US 2558658500,2558658500,PR -2558658501,2558789571,US -2558789572,2558789572,PR -2558789573,2558918655,US +2558658501,2558918655,US 2558918656,2558984191,GB 2558984192,2559246335,US 2559246336,2559311871,CL @@ -51114,16 +53150,18 @@ 2573991936,2574123007,CH 2574123008,2574188543,NO 2574188544,2574254079,NZ -2574254080,2574286847,SE -2574286848,2574287103,AU -2574287104,2574311167,SE +2574254080,2574311167,SE 2574311168,2574311423,US 2574311424,2574319615,SE 2574319616,2574647295,US 2574647296,2574778367,CN 2574778368,2583582207,JP 2583582208,2583582463,HK -2583582464,2583691263,JP +2583582464,2583600127,JP +2583600128,2583600383,US +2583600384,2583600639,JP +2583600640,2583600895,US +2583600896,2583691263,JP 2583691264,2583695359,ZA 2583695360,2583697407,BW 2583697408,2583699455,CI @@ -51294,9 +53332,15 @@ 2584764416,2584764671,ZA 2584764672,2584775423,US 2584775424,2584775679,KE -2584775680,2585001983,US +2584775680,2584780287,US +2584780288,2584780543,ES +2584780544,2585001983,US 2585001984,2585067519,CA -2585067520,2585788415,US +2585067520,2585330440,US +2585330441,2585330442,SI +2585330443,2585330468,US +2585330469,2585330470,SI +2585330471,2585788415,US 2585788416,2585853951,GB 2585853952,2585985023,JP 2585985024,2586378751,US @@ -51334,8 +53378,10 @@ 2586733568,2586733823,LT 2586733824,2586734591,US 2586734592,2586735615,LT -2586735616,2586788863,US -2586788864,2586789119,GB +2586735616,2586758143,US +2586758144,2586758655,DE +2586758656,2586788607,US +2586788608,2586789119,GB 2586789120,2586789887,US 2586789888,2586790143,GB 2586790144,2586804223,US @@ -51391,7 +53437,9 @@ 2587128523,2587128523,TR 2587128524,2587131903,US 2587131904,2587132415,FR -2587132416,2587197439,US +2587132416,2587164927,US +2587164928,2587165183,CH +2587165184,2587197439,US 2587197440,2587197695,ES 2587197696,2587240389,US 2587240390,2587240390,FR @@ -51399,8 +53447,10 @@ 2587249418,2587249418,FR 2587249419,2587361791,US 2587361792,2587362047,MD -2587362048,2587394559,US -2587394560,2587395327,ES +2587362048,2587394047,US +2587394048,2587394559,ES +2587394560,2587394815,US +2587394816,2587395327,ES 2587395328,2587396095,US 2587396096,2587399167,ES 2587399168,2587412223,US @@ -51428,20 +53478,22 @@ 2587544576,2587545599,US 2587545600,2587549695,ES 2587549696,2587582463,US -2587582464,2587586559,NL -2587586560,2587592703,US +2587582464,2587587071,NL +2587587072,2587592703,US 2587592704,2587594751,GB -2587594752,2587623423,US +2587594752,2587596799,US +2587596800,2587598847,GB +2587598848,2587623423,US 2587623424,2587631615,BG 2587631616,2587639807,US 2587639808,2587640063,GB -2587640064,2587926527,US +2587640064,2587713535,US +2587713536,2587714559,ES +2587714560,2587926527,US 2587926528,2587930623,BG -2587930624,2587938815,US -2587938816,2587939583,PR -2587939584,2587939711,US -2587939712,2587939839,PR -2587939840,2587940095,US +2587930624,2587939071,US +2587939072,2587939583,PR +2587939584,2587940095,US 2587940096,2587940607,PR 2587940608,2587940863,US 2587940864,2587941119,PR @@ -51487,6 +53539,7 @@ 2588082176,2588147711,RE 2588147712,2588164095,CI 2588164096,2588180479,RW +2588188672,2588196863,ZA 2588196864,2588213247,NG 2588213248,2588278783,ZA 2588278784,2588295167,KE @@ -51590,12 +53643,15 @@ 2591424512,2591457279,NG 2591457280,2591473663,ML 2591473664,2591477759,AO -2591477760,2591478783,PT +2591477760,2591478015,PT +2591478016,2591478271,AO +2591478272,2591478783,PT 2591478784,2591479039,AO 2591479040,2591479551,PT -2591479552,2591479807,AO -2591479808,2591481855,PT +2591479552,2591480063,AO +2591480064,2591481855,PT 2591481856,2591483903,TZ +2591483904,2591485951,KE 2591485952,2591486975,SO 2591486976,2591487999,ZA 2591488000,2591489023,GA @@ -51657,9 +53713,7 @@ 2601517056,2602565631,US 2602565632,2602631167,NZ 2602631168,2602762495,US -2602762752,2602774015,US -2602774016,2602774271,IN -2602774528,2602825727,US +2602762752,2602825727,US 2602825728,2602825983,AU 2602825984,2603417599,US 2603417600,2603483135,DE @@ -51672,7 +53726,9 @@ 2604400640,2604466175,AU 2604466176,2604648447,US 2604648448,2604648959,NZ -2604648960,2604793855,US +2604648960,2604649983,US +2604649984,2604650239,CA +2604650240,2604793855,US 2604793856,2604859391,CH 2604859392,2604990463,US 2604990464,2605055999,SG @@ -51683,17 +53739,28 @@ 2605318144,2606301183,US 2606301184,2606366719,AO 2606366720,2606563327,US +2606563328,2606596095,NG +2606596096,2606628863,ZA 2606628864,2607349759,US 2607349760,2607415295,CH 2607415296,2609053695,US 2609053696,2609119231,GB 2609119232,2609184767,FR -2609184768,2609250303,PL +2609184768,2609234431,PL +2609234432,2609234687,PT +2609234688,2609235967,PL +2609235968,2609242111,DE +2609242112,2609250303,PL 2609250304,2609381375,US -2609381376,2609446911,GB +2609381376,2609385983,GB +2609385984,2609386239,PL +2609386240,2609446911,GB 2609446912,2609512447,DK 2609512448,2609643519,US -2609643520,2609709055,GB +2609643520,2609677815,GB +2609677816,2609677817,FR +2609677818,2609708799,GB +2609708800,2609709055,FR 2609709056,2609840127,US 2609840128,2609971199,AU 2609971200,2610036735,GB @@ -51848,10 +53915,13 @@ 2617769984,2617835519,ZA 2617835520,2617901055,US 2617901056,2617966591,FI -2617966592,2618032127,CA +2617966592,2618028031,CA +2618028032,2618028543,IE +2618028544,2618029055,GB +2618029056,2618032127,CA 2618032128,2618097663,US 2618097664,2618163199,NZ -2618163200,2618228735,SI +2618163200,2618228735,IT 2618228736,2618294271,US 2618359808,2618425343,PL 2618425344,2618490879,FR @@ -51899,13 +53969,29 @@ 2623602688,2623668223,CL 2623668224,2624192511,US 2624192512,2624258047,CH -2624258048,2624279039,US +2624258048,2624269313,US +2624269314,2624269314,AU +2624269315,2624269317,US +2624269318,2624269318,AU +2624269319,2624269321,US +2624269322,2624269322,AU +2624269323,2624269345,US +2624269346,2624269346,AU +2624269347,2624269349,US +2624269350,2624269350,AU +2624269351,2624269353,US +2624269354,2624269354,AU +2624269355,2624269377,US +2624269378,2624269378,AU +2624269379,2624269381,US +2624269382,2624269382,AU +2624269383,2624269385,US +2624269386,2624269386,AU +2624269387,2624279039,US 2624279040,2624279071,IN 2624279072,2624279095,US 2624279096,2624279111,IN -2624279112,2624281087,US -2624281088,2624281343,IN -2624281344,2624292863,US +2624279112,2624292863,US 2624292864,2624292883,SG 2624292884,2624292887,HK 2624292888,2624292891,SG @@ -51980,7 +54066,23 @@ 2624298292,2624298295,PH 2624298296,2624298299,TH 2624298300,2624298495,SG -2624298496,2624716799,US +2624298496,2624302081,US +2624302082,2624302082,AU +2624302083,2624302085,US +2624302086,2624302086,AU +2624302087,2624302089,US +2624302090,2624302090,AU +2624302091,2624302113,US +2624302114,2624302114,AU +2624302115,2624302117,US +2624302118,2624302118,AU +2624302119,2624302121,US +2624302122,2624302122,AU +2624302123,2624302149,US +2624302150,2624302150,AU +2624302151,2624302153,US +2624302154,2624302154,AU +2624302155,2624716799,US 2624716800,2624782335,NL 2624782336,2624847871,CH 2624847872,2624913407,NO @@ -51992,7 +54094,7 @@ 2626093056,2626158591,CH 2626158592,2626879487,US 2626879488,2626945023,KR -2626945024,2627010559,SI +2626945024,2627010559,IT 2627010560,2627076095,NZ 2627076096,2627141631,NL 2627141632,2627403775,US @@ -52014,13 +54116,82 @@ 2635988992,2636120063,US 2636120064,2637430783,ID 2637430784,2637438975,CA -2637438976,2637630975,US -2637630976,2637631231,IE -2637631232,2637733151,US -2637733152,2637733183,JP -2637733184,2637733375,US -2637733376,2637733407,SG -2637733408,2637997055,US +2637438976,2637627391,US +2637627392,2637629439,IE +2637629440,2637629615,NL +2637629616,2637629631,IE +2637629632,2637629663,NL +2637629664,2637629807,IE +2637629808,2637629823,NL +2637629824,2637629951,IE +2637629952,2637630111,NL +2637630112,2637630119,IE +2637630120,2637630127,NL +2637630128,2637630207,IE +2637630208,2637630335,NL +2637630336,2637630463,IE +2637630464,2637630527,NL +2637630528,2637631487,IE +2637631488,2637637631,US +2637637632,2637637887,NL +2637637888,2637638143,IE +2637638144,2637638399,NL +2637638400,2637638463,IE +2637638464,2637638671,NL +2637638672,2637638783,IE +2637638784,2637638879,NL +2637638880,2637638911,IE +2637638912,2637639167,NL +2637639168,2637639199,IE +2637639200,2637639295,NL +2637639296,2637639327,IE +2637639328,2637639359,NL +2637639360,2637639383,IE +2637639384,2637639391,NL +2637639392,2637639423,IE +2637639424,2637639551,NL +2637639552,2637639679,IE +2637639680,2637660159,US +2637660160,2637660191,SG +2637660192,2637679743,US +2637679744,2637679871,IE +2637679872,2637684735,US +2637684736,2637684991,IE +2637684992,2637685247,NL +2637685248,2637685631,IE +2637685632,2637686015,NL +2637686016,2637686143,IE +2637686144,2637686271,NL +2637686272,2637686415,IE +2637686416,2637686431,NL +2637686432,2637686463,IE +2637686464,2637686655,NL +2637686656,2637686815,IE +2637686816,2637686847,NL +2637686848,2637686879,IE +2637686880,2637686911,NL +2637686912,2637686975,IE +2637686976,2637687215,NL +2637687216,2637688447,IE +2637688448,2637688495,NL +2637688496,2637688575,IE +2637688576,2637688831,NL +2637688832,2637718527,US +2637718528,2637718559,SG +2637718560,2637721599,US +2637721600,2637722143,NL +2637722144,2637722175,IE +2637722176,2637723647,NL +2637723648,2637725695,IE +2637725696,2637733119,US +2637733120,2637733375,JP +2637733376,2637733631,SG +2637733632,2637742079,US +2637742080,2637744127,IE +2637744128,2637756415,US +2637756416,2637757439,NL +2637757440,2637758463,IE +2637758464,2637997055,US 2637997056,2637997311,AU 2637997312,2637998591,US 2637998592,2637998847,AU @@ -52103,7 +54274,79 @@ 2646212608,2646278143,RU 2646278144,2646474751,US 2646474752,2646540287,IE -2646540288,2646605823,US +2646540288,2646546953,US +2646546954,2646546954,CA +2646546955,2646547013,US +2646547014,2646547014,MX +2646547015,2646547017,US +2646547018,2646547018,MX +2646547019,2646547021,US +2646547022,2646547022,CA +2646547023,2646547077,US +2646547078,2646547078,CA +2646547079,2646547081,US +2646547082,2646547082,CA +2646547083,2646547209,US +2646547210,2646547210,CA +2646547211,2646547269,US +2646547270,2646547270,MX +2646547271,2646547273,US +2646547274,2646547274,MX +2646547275,2646547277,US +2646547278,2646547278,CA +2646547279,2646547333,US +2646547334,2646547334,CA +2646547335,2646547337,US +2646547338,2646547338,CA +2646547339,2646551561,US +2646551562,2646551562,CA +2646551563,2646551621,US +2646551622,2646551622,MX +2646551623,2646551625,US +2646551626,2646551626,MX +2646551627,2646551629,US +2646551630,2646551630,CA +2646551631,2646551685,US +2646551686,2646551686,CA +2646551687,2646551689,US +2646551690,2646551690,CA +2646551691,2646551817,US +2646551818,2646551818,CA +2646551819,2646551877,US +2646551878,2646551878,MX +2646551879,2646551881,US +2646551882,2646551882,MX +2646551883,2646551885,US +2646551886,2646551886,CA +2646551887,2646551941,US +2646551942,2646551942,CA +2646551943,2646551945,US +2646551946,2646551946,CA +2646551947,2646561033,US +2646561034,2646561034,CA +2646561035,2646561093,US +2646561094,2646561094,MX +2646561095,2646561097,US +2646561098,2646561098,MX +2646561099,2646561101,US +2646561102,2646561102,CA +2646561103,2646561157,US +2646561158,2646561158,CA +2646561159,2646561161,US +2646561162,2646561162,CA +2646561163,2646565129,US +2646565130,2646565130,CA +2646565131,2646565189,US +2646565190,2646565190,MX +2646565191,2646565193,US +2646565194,2646565194,MX +2646565195,2646565197,US +2646565198,2646565198,CA +2646565199,2646565253,US +2646565254,2646565254,CA +2646565255,2646565257,US +2646565258,2646565258,CA +2646565259,2646605823,US 2646605824,2646671359,JP 2646671360,2646736895,BE 2646736896,2646933503,US @@ -52180,7 +54423,9 @@ 2655324800,2655325695,US 2655325696,2655325823,CA 2655325824,2655326207,US -2655326208,2655326463,CA +2655326208,2655326287,CA +2655326288,2655326303,US +2655326304,2655326463,CA 2655326464,2655373256,US 2655373257,2655373257,CA 2655373258,2655715327,US @@ -52210,17 +54455,15 @@ 2658009088,2658074623,IT 2658074624,2658140159,US 2658140160,2658205695,NO -2658205696,2658459647,US -2658459648,2658459648,HU -2658459649,2658459649,US -2658459650,2658459903,HU -2658459904,2658598911,US +2658205696,2658598911,US 2658598912,2658664447,GB 2658664448,2658926591,US 2658926592,2659057663,GB 2659057664,2659123199,SE 2659123200,2659180543,FI -2659180544,2659182591,NL +2659180544,2659181823,NL +2659181824,2659182079,BE +2659182080,2659182591,NL 2659182592,2659188735,FI 2659188736,2659254271,CA 2659254272,2659319807,LT @@ -52273,7 +54516,9 @@ 2663579648,2663645183,SK 2663645184,2663710719,CZ 2663710720,2663776255,SK -2663776256,2663891199,JP +2663776256,2663877631,JP +2663877632,2663877887,CN +2663877888,2663891199,JP 2663891200,2663891455,CN 2663891456,2664955903,JP 2664955904,2665021439,CH @@ -52291,7 +54536,9 @@ 2665545728,2665611263,DE 2665611264,2665676799,CH 2665676800,2665742335,ES -2665742336,2665805055,US +2665742336,2665783807,US +2665783808,2665784063,GB +2665784064,2665805055,US 2665805056,2665805311,CA 2665805312,2665873407,US 2665873408,2665938943,GB @@ -52316,7 +54563,8 @@ 2667528192,2667532287,FR 2667532288,2667534335,RU 2667534336,2667536383,PL -2667536384,2667537087,AT +2667536384,2667536639,FR +2667536640,2667537087,AT 2667537088,2667537119,FR 2667537120,2667537151,AT 2667537152,2667541503,FR @@ -52462,7 +54710,11 @@ 2675580064,2675580095,AE 2675580096,2675589119,US 2675589120,2675605503,DE -2675605504,2675606271,US +2675605504,2675605961,US +2675605962,2675605962,DE +2675605963,2675605963,US +2675605964,2675605964,DE +2675605965,2675606271,US 2675606272,2675606527,IT 2675606528,2675606975,US 2675606976,2675607039,IT @@ -52493,7 +54745,9 @@ 2677639168,2677639423,CA 2677639424,2677639679,US 2677639680,2677639935,CA -2677639936,2677642239,US +2677639936,2677641215,US +2677641216,2677641471,CA +2677641472,2677642239,US 2677642240,2677642495,ES 2677642496,2677642751,CA 2677642752,2677643007,SE @@ -52693,8 +54947,7 @@ 2687041536,2687238143,US 2687238144,2687297231,DE 2687297232,2687297239,GB -2687297240,2687297243,SE -2687297244,2687560191,DE +2687297240,2687560191,DE 2687560192,2687560447,ZA 2687560448,2687762431,DE 2687762432,2687827967,AT @@ -52702,9 +54955,9 @@ 2687893504,2688221183,DE 2688221184,2688286719,CH 2688286720,2688352255,DE -2688352256,2688420351,CH -2688420352,2688420607,CN -2688420608,2688548863,CH +2688352256,2688419711,CH +2688419712,2688419839,DE +2688419840,2688548863,CH 2688548864,2688614399,AU 2688614400,2688679935,US 2688679936,2688745471,IT @@ -52745,8 +54998,8 @@ 2689803264,2689803519,GB 2689803520,2689804799,US 2689804800,2689805055,GB -2689805056,2689818879,US -2689818880,2689819135,IN +2689805056,2689818623,US +2689818624,2689819135,IN 2689819136,2689835007,US 2689835008,2689835263,AU 2689835264,2689925119,US @@ -52781,7 +55034,9 @@ 2696478720,2696871935,JP 2696937472,2697789439,JP 2697789440,2697854975,US -2697854976,2697889791,AU +2697854976,2697887743,AU +2697887744,2697887999,ES +2697888000,2697889791,AU 2697889792,2697891839,US 2697891840,2697892095,GB 2697892096,2697892863,AU @@ -52789,7 +55044,9 @@ 2697894400,2697920511,AU 2697920512,2698117119,US 2698117120,2698182655,IS -2698182656,2698248191,DE +2698182656,2698214911,DE +2698214912,2698215167,NL +2698215168,2698248191,DE 2698248192,2698313727,US 2698313728,2698379263,DE 2698379264,2698444799,ES @@ -53006,7 +55263,11 @@ 2714373128,2714373128,SG 2714373129,2714386431,US 2714386432,2714402815,JP -2714402816,2714407160,US +2714402816,2714403996,US +2714403997,2714403997,JP +2714403998,2714407113,US +2714407114,2714407114,JP +2714407115,2714407160,US 2714407161,2714407161,JP 2714407162,2714697727,US 2714697728,2714763263,CN @@ -53104,7 +55365,8 @@ 2728295424,2728296447,CA 2728296448,2728297471,EG 2728297472,2728298495,DK -2728298496,2728300543,US +2728298496,2728299519,PH +2728299520,2728300543,US 2728300544,2728301567,CA 2728301568,2728302591,CH 2728302592,2728303615,GB @@ -53124,7 +55386,9 @@ 2728316928,2728317951,BG 2728317952,2728319999,US 2728320000,2728321023,NO -2728321024,2731543551,US +2728321024,2728323071,US +2728323072,2728324095,BE +2728324096,2731543551,US 2731543552,2731544575,CA 2731544576,2731549695,US 2731549696,2731550719,CA @@ -53180,7 +55444,9 @@ 2731800576,2731801599,CA 2731801600,2731804671,US 2731804672,2731805695,CA -2731805696,2731806463,BB +2731805696,2731805951,BB +2731805952,2731806207,LC +2731806208,2731806463,BB 2731806464,2731806719,VG 2731806720,2731807743,US 2731807744,2731808767,CA @@ -53196,9 +55462,7 @@ 2731843584,2731845631,PR 2731845632,2731853823,US 2731853824,2731855871,CA -2731855872,2731856127,VC -2731856128,2731856383,LC -2731856384,2731856895,VC +2731855872,2731856895,VC 2731856896,2731862015,US 2731862016,2731864063,CA 2731864064,2731870207,US @@ -53242,7 +55506,7 @@ 2732273664,2732275711,CA 2732275712,2732278783,US 2732278784,2732279807,CA -2732279808,2732302335,US +2732279808,2732301311,US 2732302336,2732303359,CA 2732303360,2732306431,US 2732306432,2732307455,CA @@ -53260,8 +55524,8 @@ 2732351488,2732353535,PR 2732353536,2732361727,US 2732361728,2732362495,BB -2732362496,2732363007,DM -2732363008,2732363775,BB +2732362496,2732362751,DM +2732362752,2732363775,BB 2732363776,2732371967,US 2732372992,2732375039,US 2732375040,2732376063,CA @@ -53283,9 +55547,7 @@ 2732455936,2732457983,CA 2732457984,2732472319,US 2732472320,2732474367,CA -2732474368,2732475391,US -2732475392,2732476415,CA -2732476416,2732478463,US +2732474368,2732478463,US 2732478464,2732479487,CA 2732479488,2732480511,AG 2732480512,2732485631,US @@ -53586,7 +55848,7 @@ 2738207744,2738208767,CN 2738208768,2738209791,ID 2738209792,2738210815,KH -2738210816,2738213887,IN +2738210816,2738214911,IN 2738214912,2738215935,HK 2738215936,2738216959,CN 2738216960,2738217983,HK @@ -53630,7 +55892,9 @@ 2745548800,2745565183,DE 2745565184,2745696255,GB 2745696256,2745761791,CH -2745761792,2746023935,GB +2745761792,2745962865,GB +2745962866,2745962866,FR +2745962867,2746023935,GB 2746023936,2746089471,FR 2746089472,2746155007,NO 2746155008,2746220543,NL @@ -53689,9 +55953,7 @@ 2753953792,2754084863,GB 2754084864,2754117631,KZ 2754117632,2754125823,NL -2754125824,2754127359,DE -2754127360,2754127615,US -2754127616,2754127871,DE +2754125824,2754127871,DE 2754127872,2754129919,SK 2754129920,2754131967,SE 2754134016,2754138111,DE @@ -53751,8 +56013,25 @@ 2759852032,2759917567,CH 2759917568,2759983103,FR 2759983104,2760048639,IT -2760048640,2760114175,FR -2760114176,2760179711,IT +2760048640,2760119967,FR +2760119968,2760119983,GB +2760119984,2760120839,FR +2760120840,2760120843,PT +2760120844,2760132911,FR +2760132912,2760132927,PT +2760132928,2760145226,FR +2760145227,2760145227,ES +2760145228,2760150262,FR +2760150263,2760150263,PL +2760150264,2760150871,FR +2760150872,2760150872,DE +2760150873,2760151208,FR +2760151209,2760151209,CZ +2760151210,2760151335,FR +2760151336,2760151339,GB +2760151340,2760154951,FR +2760154952,2760154955,GB +2760154956,2760179711,FR 2760179712,2760245247,DE 2760245248,2760310783,GB 2760310784,2760376319,SE @@ -53826,9 +56105,9 @@ 2769747968,2769813503,CA 2769813504,2769879039,US 2769879040,2769944575,ZA -2769944576,2769999871,US -2769999872,2769999935,GB -2769999936,2770272255,US +2769944576,2769999935,US +2769999936,2769999999,BE +2770000000,2770272255,US 2770272256,2770337791,AU 2770337792,2770993151,US 2770993152,2771124223,IN @@ -53844,13 +56123,14 @@ 2773090304,2773221375,US 2773221376,2773286911,JP 2773286912,2773745663,US -2773745664,2773794815,NZ +2773745664,2773778431,NZ +2773778432,2773794815,HK 2773794816,2773798911,IN 2773798912,2773803007,NZ 2773803008,2773803263,GB -2773803264,2773804031,NZ +2773803264,2773804031,US 2773804032,2773804287,GB -2773804288,2773804799,NZ +2773804288,2773804799,US 2773804800,2773805055,GB 2773805056,2773807103,JP 2773807104,2773811199,IN @@ -53883,9 +56163,7 @@ 2775973888,2776039423,AU 2776039424,2776104959,US 2776104960,2776170495,GB -2776170496,2776478463,US -2776478464,2776478719,ZA -2776478720,2776478975,US +2776170496,2776478975,US 2776478976,2776479231,AU 2776479232,2776891391,US 2776891392,2777022463,KR @@ -53923,8 +56201,8 @@ 2780929792,2780930047,US 2780930048,2780930559,GB 2780930560,2780931071,US -2780931072,2780932351,GB -2780932352,2780932607,US +2780931072,2780932095,GB +2780932096,2780932607,US 2780932608,2780933119,GB 2780933120,2780933375,US 2780933376,2780933631,GB @@ -53939,8 +56217,8 @@ 2781207552,2781208575,DE 2781208576,2781478911,US 2781478912,2781544447,HK -2781544448,2781623807,US -2781623808,2781624319,CA +2781544448,2781624063,US +2781624064,2781624319,CA 2781624320,2781628415,US 2781628416,2781628671,DE 2781628672,2781630463,US @@ -53958,7 +56236,9 @@ 2782724096,2782789631,US 2782789632,2782855167,CH 2782855168,2782995455,US -2782995456,2782995967,CA +2782995456,2782995526,CA +2782995527,2782995527,US +2782995528,2782995967,CA 2782995968,2783002623,US 2783002624,2783002879,DK 2783002880,2783003135,US @@ -54027,6 +56307,7 @@ 2789998592,2790195199,US 2790195200,2790260735,KR 2790260736,2790326271,US +2790326272,2790391807,HK 2790391808,2790457343,US 2790457344,2790522879,NZ 2790522880,2790588415,US @@ -54112,7 +56393,9 @@ 2809269026,2809269026,US 2809269027,2809274367,CA 2809274368,2809274623,US -2809274624,2809277375,CA +2809274624,2809276083,CA +2809276084,2809276087,US +2809276088,2809277375,CA 2809277376,2809277407,FR 2809277408,2809281575,CA 2809281576,2809281583,US @@ -54177,9 +56460,7 @@ 2813263872,2813329407,JP 2813329408,2813526015,US 2813526016,2813591551,NZ -2813591552,2813908479,US -2813908480,2813908735,AU -2813908736,2814181375,US +2813591552,2814181375,US 2814181376,2814246911,CN 2814246912,2815082495,US 2815082496,2815090687,NL @@ -54216,8 +56497,7 @@ 2817277952,2817294335,NL 2817294336,2817933055,US 2817933056,2817933311,CA -2817933312,2817933567,PR -2817933568,2818002943,US +2817933312,2818002943,US 2818002944,2818003722,GB 2818003723,2818003723,US 2818003724,2818004991,GB @@ -54233,11 +56513,9 @@ 2818124800,2818125823,AR 2818125824,2818126847,BR 2818126848,2818127871,AR -2818127872,2818138111,BR -2818139136,2818143231,BR +2818127872,2818143231,BR 2818143232,2818144255,MX -2818144256,2818145279,BR -2818146304,2818162687,BR +2818144256,2818162687,BR 2818162688,2818164735,AR 2818164736,2818165759,BZ 2818165760,2818168831,BR @@ -54260,9 +56538,11 @@ 2818209792,2818210815,CO 2818210816,2818212863,BR 2818212864,2818213887,CL -2818213888,2818221055,BR +2818213888,2818222079,BR 2818222080,2818223103,AR -2818223104,2818228223,BR +2818223104,2818225151,BR +2818225152,2818226175,EC +2818226176,2818228223,BR 2818228224,2818229247,CR 2818229248,2818231295,BR 2818231296,2818232319,PE @@ -54280,13 +56560,51 @@ 2818586624,2818587647,AR 2818587648,2818593791,BR 2818593792,2818594815,SX -2818594816,2818600959,BR +2818594816,2818619391,BR +2818619392,2818620415,AR +2818620416,2818623487,BR +2818623488,2818625535,AR +2818625536,2818626559,BR +2818626560,2818627583,HN +2818627584,2818628607,BR +2818628608,2818629631,MX +2818629632,2818634751,BR +2818634752,2818635775,CO +2818635776,2818637823,BR 2818637824,2818670591,AU -2818670592,2822592397,US -2822592398,2822592398,IE -2822592399,2822731894,US +2818670592,2822584319,US +2822584320,2822586367,NL +2822586368,2822590463,US +2822590464,2822591629,IE +2822591630,2822591630,US +2822591631,2822594559,IE +2822594560,2822596607,HK +2822596608,2822602751,IE +2822602752,2822643903,US +2822643904,2822643967,SG +2822643968,2822644479,US +2822644480,2822644735,SG +2822644736,2822646783,US +2822646784,2822647295,SG +2822647296,2822701055,US +2822701056,2822709247,NL +2822709248,2822723583,IE +2822723584,2822724095,US +2822724096,2822724415,SG +2822724416,2822724607,US +2822724608,2822725631,IE +2822725632,2822731894,NL 2822731895,2822731895,GB -2822731896,2823159807,US +2822731896,2822732102,NL +2822732103,2822732103,IE +2822732104,2822733823,NL +2822733824,2822741087,HK +2822741088,2822741103,IE +2822741104,2822742015,HK +2822742016,2822750207,SG +2822750208,2822758399,HK +2822758400,2822766591,SG +2822766592,2823159807,US 2823159808,2823225343,HK 2823225344,2823553023,US 2823553024,2823618559,ZA @@ -54306,6 +56624,36 @@ 2824357888,2824358143,CA 2824358144,2824404991,US 2824404992,2824470527,ZA +2824470528,2824472575,BR +2824472576,2824473599,AR +2824473600,2824474623,CO +2824474624,2824487935,BR +2824487936,2824488959,MX +2824488960,2824489983,AR +2824489984,2824492031,BR +2824492032,2824493055,AR +2824493056,2824494079,BR +2824494080,2824495103,VE +2824495104,2824496127,HN +2824496128,2824498175,BR +2824498176,2824499199,HN +2824499200,2824503295,BR +2824503296,2824504319,AR +2824504320,2824510463,BR +2824510464,2824511487,CL +2824511488,2824512511,AR +2824512512,2824515583,BR +2824515584,2824516607,PY +2824516608,2824520703,BR +2824520704,2824521727,HN +2824521728,2824526847,BR +2824526848,2824527871,CL +2824527872,2824529919,BR +2824529920,2824530943,CL +2824530944,2824532991,BR +2824532992,2824534015,BZ +2824534016,2824535039,BR +2824535040,2824536063,AR 2824536064,2824798207,US 2824798208,2824863743,TW 2824863744,2824929279,AR @@ -54317,6 +56665,30 @@ 2826108928,2826174463,KR 2826174464,2826436607,US 2826436608,2826502143,TH +2826502144,2826510335,BR +2826510336,2826512383,AR +2826512384,2826513407,BR +2826513408,2826515455,PE +2826515456,2826516479,BR +2826516480,2826517503,AR +2826517504,2826518527,MX +2826518528,2826522623,BR +2826522624,2826523647,CL +2826523648,2826524671,SR +2826524672,2826531839,BR +2826531840,2826532863,AR +2826532864,2826534911,BR +2826534912,2826535935,PA +2826535936,2826549247,BR +2826549248,2826550271,UY +2826550272,2826555391,BR +2826555392,2826557439,AR +2826557440,2826558463,BR +2826558464,2826559487,PE +2826559488,2826562559,BR +2826562560,2826563583,PE +2826563584,2826565631,MX +2826565632,2826567679,BR 2826567680,2826633215,US 2826633216,2826698751,GU 2826698752,2826829823,US @@ -54344,10 +56716,14 @@ 2828075008,2828533759,US 2828533760,2828599551,AU 2828599552,2828599807,IN -2828599808,2828664831,AU +2828599808,2828626687,AU +2828626688,2828627199,US +2828627200,2828664831,AU 2828664832,2828730367,KR 2828730368,2828795903,ZA -2828795904,2829033471,US +2828795904,2829029375,US +2829029376,2829029631,CN +2829029632,2829033471,US 2829033472,2829033727,IN 2829033728,2829041663,US 2829041664,2829041919,AU @@ -54357,14 +56733,16 @@ 2829148416,2829148671,HK 2829148672,2829174783,US 2829174784,2829175039,GB -2829175040,2829175551,US -2829175552,2829175807,GB +2829175040,2829175295,US +2829175296,2829175807,GB 2829175808,2829254655,US 2829254656,2829320191,CH 2829320192,2829385727,ZA 2829385728,2829451263,MX 2829451264,2829516799,US -2829516800,2829582335,BW +2829516800,2829581823,BW +2829581824,2829582079,AU +2829582080,2829582335,BW 2829582336,2829590783,US 2829590784,2829591033,GB 2829591034,2829591034,US @@ -54374,6 +56752,31 @@ 2829910016,2830106623,US 2830106624,2830172159,CO 2830172160,2830434303,US +2830434304,2830436351,BR +2830436352,2830437375,PE +2830437376,2830440447,BR +2830440448,2830441471,AR +2830441472,2830445567,BR +2830445568,2830446591,AR +2830446592,2830447615,BR +2830447616,2830448639,HN +2830449664,2830451711,BR +2830452736,2830453759,AR +2830454784,2830463999,BR +2830465024,2830466047,HN +2830467072,2830475263,BR +2830475264,2830476287,CR +2830476288,2830479359,BR +2830479360,2830480383,AR +2830480384,2830481407,BR +2830481408,2830482431,AR +2830482432,2830483455,BR +2830485504,2830486527,BR +2830486528,2830488575,AR +2830488576,2830492671,BR +2830492672,2830493695,HN +2830493696,2830494719,BR +2830497792,2830499839,BR 2830499840,2830761983,US 2830761984,2830827519,AU 2830827520,2830893055,KW @@ -54383,6 +56786,9 @@ 2831613952,2831810559,US 2831810560,2831876095,IT 2831876096,2832007167,US +2832007168,2832008191,AR +2832009216,2832010239,PA +2832015360,2832016383,BR 2832072704,2832138239,ZA 2832138240,2832269311,US 2832269312,2832465919,ZA @@ -54416,7 +56822,11 @@ 2835177472,2835181567,DZ 2835181568,2835183615,NG 2835183616,2835185663,ZA -2835185664,2835202047,RE +2835185664,2835196159,RE +2835196160,2835196927,YT +2835196928,2835197695,RE +2835197696,2835197951,YT +2835197952,2835202047,RE 2835202048,2835206143,ZA 2835206144,2835208191,NG 2835208192,2835210239,ZA @@ -54440,8 +56850,8 @@ 2838822912,2838865599,US 2838865600,2838865615,KR 2838865616,2838871295,US -2838871296,2838871311,CA -2838871312,2838881055,US +2838871296,2838871551,CA +2838871552,2838881055,US 2838881056,2838881087,AT 2838881088,2838887871,US 2838887872,2838887887,EC @@ -54459,9 +56869,7 @@ 2838946432,2838946447,CA 2838946448,2838946735,US 2838946736,2838946751,CA -2838946752,2838958927,US -2838958928,2838958943,AF -2838958944,2838962111,US +2838946752,2838962111,US 2838962112,2838962127,BR 2838962128,2838962527,US 2838962528,2838962543,GB @@ -54483,7 +56891,8 @@ 2845704192,2845769727,CU 2845769728,2845786111,GA 2845786112,2845802495,NG -2845818880,2845822975,ZA +2845802496,2845822975,ZA +2845822976,2845827071,CD 2845835264,2848212991,US 2848212992,2848215039,GB 2848215040,2848244735,US @@ -54523,8 +56932,7 @@ 2851041280,2851042303,GQ 2851042304,2851043327,LY 2851043328,2851044351,TD -2851044352,2851045887,ZA -2851045888,2851046399,SC +2851044352,2851046399,ZA 2851046400,2851047423,AO 2851047424,2851048447,SN 2851048448,2851049471,MU @@ -54535,7 +56943,13 @@ 2851053568,2851054591,KE 2851054592,2851055615,ZA 2851055616,2851057663,KE -2851057664,2851059711,ZA +2851057664,2851060735,ZA +2851060736,2851062783,NG +2851062784,2851063807,ZA +2851063808,2851065855,SC +2851065856,2851066879,ZA +2851066880,2851067903,CD +2851067904,2851070975,ZA 2851078144,2851995647,US 2852061184,2852062207,ZA 2852062208,2852063231,CM @@ -54596,7 +57010,9 @@ 2853765120,2853830655,MX 2853830656,2854289407,US 2854289408,2854354943,MY -2854354944,2854617087,US +2854354944,2854603775,US +2854603776,2854604031,NL +2854604032,2854617087,US 2854617088,2854682623,MY 2854748160,2855469055,US 2855469056,2855484671,PY @@ -54627,9 +57043,13 @@ 2859008000,2859073535,JP 2859073536,2861069055,US 2861069056,2861069311,GB -2861069312,2861733375,US +2861069312,2861698559,US +2861698560,2861698815,CA +2861698816,2861733375,US 2861733376,2861733631,CA -2861733632,2861862911,US +2861733632,2861843711,US +2861843712,2861843967,SG +2861843968,2861862911,US 2861862912,2861863167,AU 2861863168,2861876735,US 2861876736,2861876991,GB @@ -54640,12 +57060,14 @@ 2862284800,2862350335,AR 2862350336,2862415871,US 2862415872,2862481407,AU -2862481408,2863202303,US +2862481408,2863121311,US +2863121312,2863121343,CA +2863121344,2863202303,US 2863202304,2863267839,MX 2863267840,2863595519,US 2863595520,2863661055,CA 2863661056,2863857663,US -2863857664,2863923199,SG +2863857664,2863923199,CN 2863923200,2864844799,US 2864844800,2864845055,NL 2864845056,2864848895,US @@ -54806,7 +57228,9 @@ 2868671488,2868674336,GB 2868674337,2868674337,SE 2868674338,2868674559,GB -2868674560,2868682752,PH +2868674560,2868676607,PH +2868676608,2868678655,AU +2868678656,2868682752,PH 2868682753,2868682753,US 2868682754,2868689151,PH 2868689152,2868689663,AU @@ -54896,14 +57320,20 @@ 2875719680,2877292543,CN 2877292544,2879336447,US 2879336448,2879336703,GB -2879336704,2881486847,US +2879336704,2879469567,US +2879469568,2879469823,IN +2879469824,2881486847,US 2881486848,2881487103,GB 2881487104,2882469887,US 2882469888,2882535423,SG 2882535424,2883583999,CN 2883584000,2885681151,VN 2885681152,2886667007,US -2886667008,2886667263,DE +2886667008,2886667195,DE +2886667196,2886667196,US +2886667197,2886667240,DE +2886667241,2886667241,US +2886667242,2886667263,DE 2886667264,2886729727,US 2887778304,2891034623,US 2891034624,2891036671,CA @@ -54990,20 +57420,24 @@ 2892171264,2892172287,CA 2892172288,2892174335,US 2892174336,2892177407,CA -2892177408,2892369919,US +2892177408,2892365823,US +2892366848,2892369919,US 2892369920,2892374015,CA 2892374016,2892420607,US 2892420608,2892420863,CA -2892420864,2892423167,US +2892420864,2892421631,US +2892421632,2892421887,CA +2892421888,2892423167,US 2892423168,2892424191,VI 2892424192,2892425215,CA 2892425216,2892443647,US 2892443648,2892447743,CA -2892447744,2892464127,VG +2892447744,2892464127,US 2892464128,2892496895,CA 2892496896,2892906495,US 2892906496,2892910591,CA -2892910592,2892988415,US +2892910592,2892941311,US +2892942336,2892988415,US 2892988416,2892988671,SC 2892988672,2892988927,PA 2892988928,2892989183,SA @@ -55024,7 +57458,17 @@ 2892994560,2892994815,JO 2892994816,2892995327,GB 2892995328,2892995839,AU -2892995840,2893676543,US +2892995840,2892996095,CA +2892996096,2892996607,US +2892996608,2892996863,CA +2892996864,2892997119,AU +2892997120,2892997375,CA +2892997376,2892997887,AU +2892997888,2892998655,GB +2892998656,2892998911,HK +2892998912,2892999167,MX +2892999168,2892999423,MT +2892999424,2893676543,US 2893676544,2893807615,CA 2893807616,2894921727,US 2894921728,2895118335,GB @@ -55073,10 +57517,12 @@ 2905002249,2905002249,NL 2905002250,2905002495,GB 2905002496,2905005055,US -2905005056,2905005311,GB +2905005056,2905005087,GB +2905005088,2905005095,US +2905005096,2905005311,GB 2905005312,2905044991,US -2905044992,2905045247,SG -2905045248,2905345279,US +2905044992,2905045503,SG +2905045504,2905345279,US 2905345280,2905345535,AU 2905345536,2905346815,US 2905346816,2905347071,JP @@ -55095,9 +57541,10 @@ 2905415936,2905446655,US 2905446656,2905446911,DE 2905446912,2905456639,US +2905457152,2905457407,US 2905457664,2905457919,US -2905458432,2905458687,US -2905458944,2905460479,US +2905458176,2905458687,US +2905458944,2905460223,US 2905460736,2905460991,US 2905461248,2905462271,US 2905463296,2905463551,US @@ -55433,9 +57880,11 @@ 2921594880,2925002751,US 2925002752,2925527039,CA 2925527040,2926575615,US -2926575616,2927056639,CA -2927056640,2927057023,US -2927057024,2927057919,CA +2926575616,2926777727,CA +2926777728,2926777791,US +2926777792,2926779135,CA +2926779136,2926779519,US +2926779520,2927057919,CA 2927057920,2927058175,US 2927058176,2927099903,CA 2927099904,2927242751,US @@ -55510,7 +57959,9 @@ 2938961920,2938978303,HK 2938978304,2938986495,AU 2938986496,2938986751,NZ -2938986752,2938996735,AU +2938986752,2938988031,AU +2938988032,2938988287,NZ +2938988288,2938996735,AU 2938996736,2938998783,JP 2938998784,2939002879,AU 2939002880,2939004927,KR @@ -55560,6 +58011,12 @@ 2943314944,2943315967,CN 2943315968,2943318015,ID 2943318016,2943320063,JP +2943320064,2943324159,IN +2943324160,2943332351,CN +2943332352,2943333375,AU +2943333376,2943334399,IN +2943334400,2943335423,CN +2943335424,2943336447,IN 2943336448,2943352831,TW 2943352832,2944401407,KR 2944401408,2944925695,JP @@ -55605,7 +58062,10 @@ 2947598336,2947602431,AU 2947602432,2947603455,NZ 2947603456,2947604479,TH -2947604480,2947612671,HK +2947604480,2947609599,HK +2947609600,2947609855,AU +2947609856,2947610111,AF +2947610112,2947612671,HK 2947612672,2947678207,JP 2947678208,2947743743,CN 2947743744,2947809279,JP @@ -55642,7 +58102,9 @@ 2953596928,2953598975,ES 2953598976,2953601023,IT 2953601024,2953603071,RU -2953603072,2953605119,GB +2953603072,2953603977,GB +2953603978,2953603979,IE +2953603980,2953605119,GB 2953605120,2953609215,CZ 2953609216,2953707519,IL 2953707520,2953838591,RU @@ -55897,9 +58359,7 @@ 2955034624,2955083775,IE 2955083776,2955149311,GB 2955149312,2955411455,UA -2955411456,2955631615,TR -2955631616,2955631871,UA -2955631872,2955673599,TR +2955411456,2955673599,TR 2955673600,2955804671,SA 2955804672,2955837439,EE 2955837440,2955845631,IR @@ -56022,7 +58482,9 @@ 2957197312,2957201407,IR 2957201408,2957202679,US 2957202680,2957202680,PT -2957202681,2957203455,US +2957202681,2957203127,US +2957203128,2957203131,XK +2957203132,2957203455,US 2957203456,2957205503,FR 2957205504,2957213695,PS 2957213696,2957221887,FR @@ -56463,8 +58925,10 @@ 2961064960,2961065215,HK 2961065216,2961065471,AU 2961065472,2961065727,BR -2961065728,2961065983,HK -2961065984,2961069567,NL +2961065728,2961066239,HK +2961066240,2961067519,NL +2961067520,2961067775,GB +2961067776,2961069567,NL 2961069568,2961069823,IN 2961069824,2961072127,NL 2961072128,2961088511,UA @@ -56520,9 +58984,11 @@ 2967396352,2967398399,CZ 2967398400,2967400447,DK 2967400448,2967404543,RU -2967404544,2967422975,RO +2967404544,2967421695,RO +2967421696,2967421951,ES +2967421952,2967422975,RO 2967422976,2967425023,KZ -2967425024,2967427071,DE +2967425024,2967427071,IR 2967427072,2967428095,NL 2967428096,2967432191,RO 2967432192,2967432447,GB @@ -56578,13 +59044,16 @@ 2968648576,2968649727,FR 2968649728,2969042943,IT 2969042944,2969567231,GB -2969567232,2970294271,BR -2970295808,2972125183,BR -2972126208,2973071359,BR -2973072384,2973079551,BR -2973082624,2975199231,BR -2975199744,2975199999,BR -2975201280,2975594495,BR +2969567232,2970241023,BR +2970242048,2970294271,BR +2970295808,2970343423,BR +2970344448,2972125183,BR +2972126208,2973079551,BR +2973082624,2974466047,BR +2974470144,2975124479,BR +2975125504,2975282175,BR +2975283200,2975290367,BR +2975291392,2975594495,BR 2975594496,2975596543,PE 2975596544,2977733631,BR 2977734656,2978029567,BR @@ -56882,7 +59351,9 @@ 2988482576,2988482579,CZ 2988482580,2988483027,FR 2988483028,2988483031,ES -2988483032,2988484831,FR +2988483032,2988484339,FR +2988484340,2988484343,PT +2988484344,2988484831,FR 2988484832,2988484847,GB 2988484848,2988485683,FR 2988485684,2988485687,PL @@ -57027,7 +59498,9 @@ 2988539972,2988539975,ES 2988539976,2988540199,FR 2988540200,2988540207,BE -2988540208,2988540503,FR +2988540208,2988540271,FR +2988540272,2988540275,ES +2988540276,2988540503,FR 2988540504,2988540507,NL 2988540508,2988540563,FR 2988540564,2988540567,CZ @@ -57142,7 +59615,9 @@ 2989228032,2989490175,RU 2989490176,2989555711,HU 2989555712,2989588479,RU -2989588480,2989589503,CO +2989588480,2989588735,CO +2989588736,2989588991,RU +2989588992,2989589503,CO 2989589504,2989621247,RU 2989621248,2989752319,BE 2989752320,2989817855,SY @@ -57187,9 +59662,11 @@ 2991308800,2991325183,BG 2991325184,2991341567,AZ 2991341568,2991357951,MD -2991357952,2991363071,DE -2991363072,2991363327,US -2991363328,2991374335,DE +2991357952,2991367679,DE +2991367680,2991367935,US +2991367936,2991372287,DE +2991372288,2991372543,US +2991372544,2991374335,DE 2991374336,2991390719,RU 2991390720,2991407103,BA 2991407104,2991423487,DE @@ -57202,20 +59679,20 @@ 2991521792,2991538175,RS 2991538176,2991554559,SI 2991554560,2991570943,GB -2991570944,2991571711,IT -2991571712,2991571967,GB -2991571968,2991587327,IT +2991570944,2991587327,IT 2991587328,2991718399,SA 2991718400,2991752191,CH -2991752192,2991752575,DE -2991752576,2991849471,CH +2991752192,2991753215,DE +2991753216,2991849471,CH 2991849472,2991980543,NL 2991980544,2992111615,SA 2992111616,2992373759,KZ 2992373760,2992635903,UA 2992635904,2993684479,GB 2993684480,2993946623,AT -2993946624,2994208767,BE +2993946624,2994131711,BE +2994131712,2994131967,FR +2994131968,2994208767,BE 2994208768,2994733055,BY 2994733056,2994798591,GR 2994798592,2994929663,RU @@ -57228,9 +59705,7 @@ 2995009536,2995011583,ES 2995011584,2995013631,DE 2995013632,2995015679,SE -2995015680,2995017215,BG -2995017216,2995017471,JP -2995017472,2995017727,BG +2995015680,2995017727,BG 2995017728,2995019775,IT 2995019776,2995021823,RU 2995021824,2995023871,IT @@ -57422,7 +59897,7 @@ 3000317952,3000319999,PL 3000320000,3000322047,FR 3000322048,3000322303,PL -3000322304,3000322559,RU +3000322304,3000322559,GB 3000322560,3000322815,DE 3000322816,3000323071,RU 3000323072,3000323583,DE @@ -57502,7 +59977,11 @@ 3000606720,3000608767,UA 3000608768,3000610815,KG 3000610816,3000612863,RU -3000612864,3000616959,PL +3000612864,3000612930,PL +3000612931,3000612931,PT +3000612932,3000613241,PL +3000613242,3000613242,PT +3000613243,3000616959,PL 3000616960,3000621055,UA 3000621056,3000623103,PL 3000623104,3000625151,RU @@ -57575,7 +60054,9 @@ 3001920256,3001920511,AU 3001920512,3001921535,GB 3001921536,3001929727,RU -3001929728,3001933823,RS +3001929728,3001930239,RS +3001930240,3001930495,XK +3001930496,3001933823,RS 3001933824,3001937919,ES 3001937920,3001942015,RU 3001946112,3001950207,RU @@ -57747,7 +60228,9 @@ 3003023360,3003039743,RS 3003039744,3003056127,BG 3003056128,3003058175,DE -3003058176,3003060223,EE +3003058176,3003058943,EE +3003058944,3003059199,IL +3003059200,3003060223,EE 3003060224,3003062271,DE 3003062272,3003064319,NL 3003064320,3003066367,RO @@ -58351,7 +60834,8 @@ 3007312896,3007313919,CL 3007313920,3007314943,AR 3007314944,3007315967,HN -3007315968,3015648255,BR +3007315968,3010289663,BR +3010297856,3015648255,BR 3015651328,3019898879,BR 3019898880,3024093183,JP 3024093184,3024617471,KR @@ -58361,7 +60845,8 @@ 3025403904,3025600511,CN 3025600512,3025601663,IN 3025601664,3025601791,HK -3025601792,3025602047,IN +3025601792,3025601919,IN +3025601920,3025602047,CN 3025602048,3025602303,HK 3025602304,3025603071,IN 3025603072,3025603091,HK @@ -58396,7 +60881,9 @@ 3025616896,3025617439,SG 3025617440,3025617447,IN 3025617448,3025617455,SG -3025617456,3025618943,IN +3025617456,3025617487,IN +3025617488,3025617503,SG +3025617504,3025618943,IN 3025618944,3025619519,SG 3025619520,3025619583,IN 3025619584,3025619711,SG @@ -58436,12 +60923,15 @@ 3025631748,3025631767,HK 3025631768,3025631999,IN 3025632000,3025632255,HK -3025632256,3025632415,SG -3025632416,3025632511,IN +3025632256,3025632423,SG +3025632424,3025632511,IN 3025632512,3025632767,SG 3025632768,3025633535,IN 3025633536,3025633791,HK -3025633792,3025633919,AU +3025633792,3025633807,AU +3025633808,3025633823,IN +3025633824,3025633855,AU +3025633856,3025633919,IN 3025633920,3025634047,MY 3025634048,3025637151,IN 3025637152,3025637183,MY @@ -58466,10 +60956,8 @@ 3025639424,3025639535,SG 3025639536,3025639551,HK 3025639552,3025639679,SG -3025639680,3025639807,HK -3025639808,3025639839,IN -3025639840,3025639879,HK -3025639880,3025640191,IN +3025639680,3025639935,HK +3025639936,3025640191,IN 3025640192,3025640447,JP 3025640448,3025640799,MY 3025640800,3025641727,IN @@ -58495,8 +60983,7 @@ 3025648092,3025648095,SG 3025648096,3025649151,IN 3025649152,3025649663,HK -3025649664,3025649919,AE -3025649920,3025666047,IN +3025649664,3025666047,IN 3025666048,3025928191,CN 3025928192,3025932287,TW 3025932288,3025944575,JP @@ -58544,21 +61031,21 @@ 3028521984,3028523007,LA 3028523008,3028525055,JP 3028525056,3028533247,HK -3028533248,3028539135,JP -3028539136,3028539391,US -3028539392,3028541951,JP +3028533248,3028538879,JP +3028538880,3028539391,US +3028539392,3028541183,JP +3028541184,3028541439,US +3028541440,3028541951,JP 3028541952,3028542207,US -3028542208,3028544511,JP -3028544512,3028544767,US -3028544768,3028545023,JP -3028545024,3028545791,US -3028545792,3028546047,JP -3028546048,3028546303,US -3028546304,3028547839,JP -3028547840,3028548095,US -3028548096,3028548607,JP -3028548608,3028549119,US -3028549120,3028549631,JP +3028542208,3028543743,JP +3028543744,3028544255,US +3028544256,3028545535,JP +3028545536,3028545791,US +3028545792,3028546559,JP +3028546560,3028546815,US +3028546816,3028547071,JP +3028547072,3028547583,US +3028547584,3028549631,JP 3028549632,3028811775,KR 3028811776,3029336063,CN 3029336064,3029598207,JP @@ -58708,7 +61195,8 @@ 3035168768,3035193343,CN 3035193344,3035197439,JP 3035197440,3035198463,SG -3035198464,3035199487,HK +3035198464,3035198719,KR +3035198720,3035199487,HK 3035199488,3035200511,IN 3035200512,3035202559,AU 3035202560,3035205631,JP @@ -58754,7 +61242,9 @@ 3039297536,3039363071,PY 3039363072,3039379455,US 3039379456,3039395839,GY -3039395840,3039412223,US +3039395840,3039396351,US +3039396352,3039396607,NL +3039396608,3039412223,US 3039412224,3039412735,CL 3039412736,3039412991,BR 3039412992,3039413247,US @@ -59228,7 +61718,8 @@ 3051460608,3051462655,AR 3051462656,3051470847,PE 3051470848,3051479039,AR -3051479040,3051487231,CU +3051479040,3051486975,CU +3051486976,3051487231,HU 3051487232,3051552767,CL 3051552768,3051618303,BO 3051618304,3051880447,AR @@ -59327,11 +61818,13 @@ 3057041408,3057049599,MY 3057049600,3057050623,AU 3057050624,3057051647,SG -3057051648,3057052415,AU +3057051648,3057052159,AU +3057052160,3057052415,US 3057052416,3057052671,ES 3057052672,3057052927,IL 3057052928,3057053183,GB -3057053184,3057053695,AU +3057053184,3057053439,US +3057053440,3057053695,SG 3057053696,3057054719,JP 3057054720,3057055743,CN 3057055744,3057057791,JP @@ -59359,6 +61852,13 @@ 3063971840,3063988223,AU 3063988224,3064004607,JP 3064004608,3064012799,LK +3064012800,3064013823,AU +3064013824,3064015871,HK +3064015872,3064016895,AU +3064016896,3064017919,SG +3064017920,3064018943,IN +3064018944,3064019967,NZ +3064019968,3064020991,HK 3064020992,3064023039,JP 3064023040,3064024063,SG 3064024064,3064025087,JP @@ -59371,7 +61871,10 @@ 3064725504,3064791039,KR 3064791040,3064807423,TW 3064807424,3064808447,IN -3064808448,3064809471,TW +3064808448,3064808703,VG +3064808704,3064808959,JP +3064808960,3064809215,VN +3064809216,3064809471,VG 3064809472,3064810495,MY 3064810496,3064811519,HK 3064811520,3064823807,KR @@ -59420,7 +61923,9 @@ 3070181376,3070185471,JP 3070185472,3070197759,AU 3070197760,3070230527,KR -3070230528,3074949119,CN +3070230528,3073773183,CN +3073773184,3073773311,MO +3073773312,3074949119,CN 3074949120,3075342335,JP 3075342336,3075375103,MY 3075375104,3075383295,KR @@ -59476,7 +61981,8 @@ 3081846784,3081847807,TW 3081847808,3081848831,KR 3081848832,3081850879,SG -3081850880,3081851903,HK +3081850880,3081851391,HK +3081851392,3081851903,SG 3081851904,3081852927,JP 3081852928,3081854975,HK 3081854976,3081859071,MN @@ -59504,7 +62010,9 @@ 3088474112,3088478207,US 3088478208,3088506879,TH 3088506880,3088605183,US -3088605184,3088609279,NL +3088605184,3088605695,NL +3088605696,3088605951,US +3088605952,3088609279,NL 3088609280,3088629759,US 3088629760,3088633855,NL 3088633856,3088654335,US @@ -59571,7 +62079,9 @@ 3090387968,3090388479,NL 3090388480,3090389503,US 3090389504,3090389631,CA -3090389632,3090401791,US +3090389632,3090401023,US +3090401024,3090401279,KR +3090401280,3090401791,US 3090401792,3090402047,IN 3090402048,3090415103,US 3090415104,3090415615,NL @@ -59652,7 +62162,9 @@ 3093909657,3093909657,FR 3093909658,3093909812,US 3093909813,3093909813,AT -3093909814,3093943785,US +3093909814,3093935103,US +3093935104,3093935359,CA +3093935360,3093943785,US 3093943786,3093943786,CZ 3093943787,3093945989,US 3093945990,3093945990,AT @@ -59767,6 +62279,11 @@ 3103865600,3103865855,BG 3103865856,3103866367,DE 3103866368,3103866879,UA +3103866880,3103867135,RU +3103867136,3103867391,NO +3103867392,3103867647,FR +3103867648,3103867903,RU +3103867904,3103868159,ES 3103916032,3103917055,CH 3103917056,3103918079,IT 3103918080,3103919103,DE @@ -59781,7 +62298,9 @@ 3103925248,3103926271,PL 3103926272,3103926783,CZ 3103926784,3103927039,SK -3103927040,3103927295,CZ +3103927040,3103927167,CZ +3103927168,3103927199,SK +3103927200,3103927295,CZ 3103927296,3103929343,NL 3103929344,3103930367,BE 3103930368,3103931391,DE @@ -60209,7 +62728,8 @@ 3104375808,3104376831,DK 3104376832,3104377855,FI 3104377856,3104378879,DE -3104378880,3104379903,GB +3104378880,3104379647,GB +3104379648,3104379903,AT 3104379904,3104380927,FR 3104380928,3104381951,DK 3104381952,3104382975,DE @@ -60355,6 +62875,7 @@ 3104533504,3104534527,PL 3104534528,3104535551,SE 3104535552,3104536575,ES +3104536576,3104537599,SA 3104537600,3104538623,US 3104538624,3104539647,PL 3104539648,3104540671,RU @@ -60479,7 +63000,9 @@ 3104660480,3104661503,NO 3104661504,3104662527,SE 3104662528,3104663551,FR -3104663552,3104665599,GB +3104663552,3104664255,GB +3104664256,3104664263,CH +3104664264,3104665599,GB 3104665600,3104668671,RU 3104668672,3104669695,NO 3104669696,3104670719,FR @@ -60587,7 +63110,9 @@ 3104777216,3104778239,DE 3104778240,3104779263,TR 3104779264,3104780287,PL -3104780288,3104782335,FR +3104780288,3104781567,FR +3104781568,3104781823,GB +3104781824,3104782335,FR 3104782336,3104783359,NL 3104783360,3104784383,RU 3104784384,3104785407,BA @@ -60861,7 +63386,9 @@ 3105052672,3105053695,GB 3105053696,3105054719,TR 3105054720,3105055743,GE -3105055744,3105056767,NL +3105055744,3105056243,NL +3105056244,3105056244,DE +3105056245,3105056767,NL 3105056768,3105057791,SC 3105057792,3105058815,GB 3105058816,3105059839,JO @@ -61088,8 +63615,7 @@ 3105299456,3105300479,IT 3105300480,3105301503,RU 3105301504,3105302527,ES -3105302528,3105302783,GB -3105302784,3105303551,FR +3105302528,3105303551,FR 3105303552,3105304575,IE 3105304576,3105305599,GE 3105305600,3105308671,GB @@ -61125,7 +63651,8 @@ 3105341440,3105342463,ES 3105342464,3105343487,AE 3105343488,3105344511,TJ -3105344512,3105345535,NO +3105344512,3105344767,SE +3105344768,3105345535,NO 3105345536,3105346559,DE 3105346560,3105347583,NL 3105347584,3105348607,DK @@ -61178,7 +63705,9 @@ 3105400832,3105401855,DK 3105401856,3105402879,NL 3105402880,3105404927,RU -3105404928,3105405951,FR +3105404928,3105404928,FR +3105404929,3105404929,RE +3105404930,3105405951,FR 3105405952,3105406975,NO 3105406976,3105407999,FR 3105408000,3105410047,PL @@ -61308,7 +63837,8 @@ 3105531904,3105532927,RU 3105532928,3105533951,RS 3105533952,3105534975,BA -3105534976,3105535794,NO +3105534976,3105535231,ZA +3105535232,3105535794,NO 3105535795,3105535795,RU 3105535796,3105535999,NO 3105536000,3105537023,AZ @@ -61467,7 +63997,8 @@ 3105684480,3105686527,GB 3105686528,3105687551,BE 3105687552,3105688063,SE -3105688064,3105688575,LV +3105688064,3105688319,LV +3105688320,3105688575,NL 3105688576,3105689599,PL 3105689600,3105690623,SI 3105690624,3105691647,SE @@ -61589,7 +64120,9 @@ 3105814528,3105815551,JO 3105815552,3105816575,BE 3105816576,3105817599,FR -3105817600,3105818623,DE +3105817600,3105818111,DE +3105818112,3105818367,HU +3105818368,3105818623,DE 3105818624,3105819647,NL 3105819648,3105820671,GB 3105821696,3105822719,ES @@ -61603,7 +64136,7 @@ 3105829888,3105830911,AT 3105830912,3105831167,IT 3105831168,3105831423,US -3105831424,3105831679,IT +3105831424,3105831679,SG 3105831680,3105831935,BR 3105831936,3105832959,DE 3105832960,3105833983,IT @@ -61858,9 +64391,7 @@ 3106067456,3106068479,DE 3106068480,3106070527,NL 3106070528,3106071551,UA -3106071552,3106072063,BH -3106072064,3106072319,US -3106072320,3106072575,BH +3106071552,3106072575,BH 3106072576,3106073599,GB 3106073600,3106074623,PL 3106074624,3106076671,RU @@ -62088,7 +64619,9 @@ 3106291712,3106292735,CH 3106292736,3106293759,NO 3106293760,3106294783,UA -3106294784,3106295807,DE +3106294784,3106295039,DE +3106295040,3106295295,US +3106295296,3106295807,DE 3106295808,3106296831,GB 3106296832,3106297855,RU 3106297856,3106298879,NL @@ -62233,7 +64766,9 @@ 3106437120,3106438143,IS 3106438144,3106439167,GB 3106439168,3106440191,RU -3106440192,3106441215,DE +3106440192,3106440706,DE +3106440707,3106440707,CH +3106440708,3106441215,DE 3106441216,3106442239,HU 3106442240,3106443263,GB 3106443264,3106445311,ES @@ -62262,7 +64797,7 @@ 3106466560,3106466815,RO 3106466816,3106467839,EE 3106467840,3106468863,IR -3106469888,3106470911,DE +3106468864,3106470911,DE 3106470912,3106471935,NL 3106471936,3106472959,IR 3106472960,3106473983,FR @@ -62281,10 +64816,10 @@ 3106483426,3106483426,FR 3106483427,3106483429,GB 3106483430,3106483430,IE -3106483431,3106483761,GB -3106483762,3106483762,DE +3106483431,3106483711,GB +3106483712,3106483762,DE 3106483763,3106483763,CZ -3106483764,3106483765,GB +3106483764,3106483765,DE 3106483766,3106483766,IT 3106483767,3106483767,DE 3106483768,3106483768,CZ @@ -62295,11 +64830,12 @@ 3106483773,3106483773,IT 3106483774,3106483774,PL 3106483775,3106483775,IE -3106483776,3106483815,GB +3106483776,3106483815,DE 3106483816,3106483816,FR -3106483817,3106483826,GB +3106483817,3106483826,DE 3106483827,3106483827,FR -3106483828,3106484223,GB +3106483828,3106483967,DE +3106483968,3106484223,GB 3106484224,3106485247,NL 3106485248,3106486271,CZ 3106486272,3106488319,DE @@ -62533,7 +65069,9 @@ 3106732032,3106735167,GB 3106735168,3106735199,IE 3106735200,3106735231,DE -3106735232,3106736127,GB +3106735232,3106735263,GB +3106735264,3106735295,FR +3106735296,3106736127,GB 3106736128,3106737151,IE 3106737152,3106738175,RO 3106738176,3106739199,DE @@ -62549,7 +65087,8 @@ 3106748416,3106749439,CZ 3106749440,3106750463,RU 3106750464,3106751487,BG -3106751488,3106752511,IT +3106751488,3106751743,IT +3106751744,3106752511,SM 3106752512,3106753535,ES 3106753536,3106754559,IS 3106754560,3106755583,RU @@ -62559,7 +65098,7 @@ 3106758656,3106759679,GB 3106759680,3106760703,RU 3106760704,3106761727,IE -3106762752,3106763775,DE +3106761728,3106763775,DE 3106763776,3106764799,NL 3106764800,3106765823,SE 3106765824,3106766847,CZ @@ -62663,8 +65202,7 @@ 3106865152,3106866175,NL 3106866176,3106867199,AZ 3106867200,3106868223,LV -3106868224,3106869247,NL -3106869248,3106870271,ES +3106868224,3106870271,ES 3106870272,3106871295,NL 3106871296,3106872319,CH 3106872320,3106873343,BE @@ -62741,8 +65279,8 @@ 3106947072,3106948095,AE 3106948096,3106949119,NL 3106949120,3106950143,RU -3106950144,3106950399,IM -3106950400,3106951167,GB +3106950144,3106950911,IM +3106950912,3106951167,GB 3106951168,3106952191,SE 3106952192,3106954239,ES 3106954240,3106955263,DE @@ -62781,9 +65319,7 @@ 3106992128,3106993151,AM 3106993152,3106994175,DE 3106994176,3106995199,SK -3106995200,3106995711,FR -3106995712,3106995967,US -3106995968,3106996223,FR +3106995200,3106996223,FR 3106996224,3106997247,SI 3106997248,3106998271,NO 3106998272,3106999295,IT @@ -62890,7 +65426,8 @@ 3107099648,3107099903,UA 3107099904,3107100159,CZ 3107100160,3107100415,RU -3107100416,3107101695,CZ +3107100416,3107100671,SK +3107100672,3107101695,CZ 3107101696,3107102719,RU 3107102720,3107103743,GB 3107103744,3107104767,PL @@ -62994,7 +65531,7 @@ 3107204096,3107205119,FR 3107205120,3107206143,BG 3107206144,3107207167,NL -3107207168,3107207423,AT +3107207168,3107208191,RU 3107208192,3107209215,NL 3107209216,3107210239,IT 3107210240,3107213311,RU @@ -63068,7 +65605,7 @@ 3107286016,3107287039,AT 3107287040,3107288063,RS 3107288064,3107289087,NO -3107289088,3107290111,SI +3107289088,3107290111,IT 3107290112,3107291135,PL 3107291136,3107292159,NL 3107292160,3107293183,PL @@ -63431,8 +65968,7 @@ 3107639296,3107640319,ES 3107640320,3107641343,DK 3107641344,3107643391,RU -3107643392,3107643647,GB -3107643648,3107644415,IT +3107643392,3107644415,GB 3107644416,3107645439,FR 3107645440,3107646463,IE 3107646464,3107647487,NL @@ -64082,7 +66618,9 @@ 3108333568,3108334591,SK 3108334592,3108335615,IR 3108335616,3108336639,NL -3108336640,3108337663,GB +3108336640,3108337151,GB +3108337152,3108337407,ES +3108337408,3108337663,GB 3108337664,3108338687,IR 3108338688,3108339711,RU 3108339712,3108340735,NL @@ -64446,7 +66984,8 @@ 3108745216,3108746239,ES 3108746240,3108747263,RU 3108747264,3108748287,DE -3108748288,3108749311,RU +3108748288,3108749055,RU +3108749056,3108749311,KZ 3108749312,3108750335,HU 3108750336,3108751359,IR 3108751360,3108752383,RU @@ -64779,7 +67318,9 @@ 3109083136,3109084159,SE 3109084160,3109084170,GB 3109084171,3109084171,NL -3109084172,3109085183,GB +3109084172,3109084178,GB +3109084179,3109084179,NL +3109084180,3109085183,GB 3109085184,3109086207,AL 3109086208,3109087231,RU 3109087232,3109088255,NL @@ -65125,7 +67666,8 @@ 3109428224,3109429247,CH 3109429248,3109430271,ES 3109430272,3109431295,IR -3109431296,3109432319,IL +3109431296,3109431807,IL +3109431808,3109432319,IT 3109432320,3109433343,MT 3109433344,3109435391,FR 3109435392,3109436415,UA @@ -65157,7 +67699,9 @@ 3109465088,3109466111,DE 3109466112,3109467135,FR 3109467136,3109468159,IR -3109468160,3109468351,GB +3109468160,3109468322,GB +3109468323,3109468323,ES +3109468324,3109468351,GB 3109468352,3109468415,ES 3109468416,3109468671,GB 3109468672,3109468799,ES @@ -65548,7 +68092,8 @@ 3109876736,3109877759,ES 3109877760,3109878783,PL 3109878784,3109879807,GB -3109879808,3109880831,CZ +3109879808,3109880063,US +3109880064,3109880831,CZ 3109880832,3109881855,FR 3109881856,3109882879,AT 3109882880,3109883903,NL @@ -65592,7 +68137,22 @@ 3109921792,3109922815,IR 3109922816,3109924863,GB 3109924864,3109925887,IT -3109925888,3109926911,GB +3109925888,3109925967,GB +3109925968,3109925983,DE +3109925984,3109926015,GB +3109926016,3109926031,DE +3109926032,3109926143,GB +3109926144,3109926159,FR +3109926160,3109926175,GB +3109926176,3109926183,IT +3109926184,3109926207,GB +3109926208,3109926215,ES +3109926216,3109926279,GB +3109926280,3109926287,DE +3109926288,3109926335,ES +3109926336,3109926399,GB +3109926400,3109926655,ES +3109926656,3109926911,IT 3109926912,3109927935,UA 3109927936,3109928959,DE 3109928960,3109929983,DK @@ -65678,13 +68238,17 @@ 3109982208,3109984255,CH 3109984256,3109985279,RU 3109985280,3109986303,SK -3109986304,3109987327,SI +3109986304,3109987327,IT 3109987328,3109988351,RU 3109988352,3109989375,NL 3109989376,3109990399,RU 3109990400,3109991423,GB 3109991424,3109992447,NL -3109992448,3109995519,GB +3109992448,3109993471,GB +3109993472,3109993727,NL +3109993728,3109993983,FR +3109993984,3109994239,HU +3109994240,3109995519,GB 3109995520,3109996543,NL 3109996544,3109997567,IE 3109997568,3109998591,GB @@ -65840,12 +68404,17 @@ 3110159360,3110160383,SI 3110160384,3110161407,BG 3110161408,3110162431,RU -3110162432,3110163455,IE +3110162432,3110162687,IE +3110162688,3110162771,GB +3110162772,3110162775,IE +3110162776,3110162943,GB +3110162944,3110163455,IE 3110163456,3110164479,FR 3110164480,3110165503,SE 3110165504,3110166527,LB 3110166528,3110167551,DE -3110167552,3110168575,CH +3110167552,3110167807,FR +3110167808,3110168575,CH 3110168576,3110169599,LB 3110169600,3110170623,IT 3110170624,3110171647,KZ @@ -65906,7 +68475,9 @@ 3110224896,3110225919,AT 3110225920,3110226943,CH 3110226944,3110227967,KZ -3110227968,3110231039,RU +3110227968,3110230015,RU +3110230016,3110230271,KZ +3110230272,3110231039,RU 3110231040,3110232063,DE 3110232064,3110233087,DK 3110233088,3110234879,NL @@ -65987,14 +68558,19 @@ 3110304768,3110305791,KZ 3110305792,3110306815,NL 3110306816,3110307327,NZ -3110307328,3110307452,BY +3110307328,3110307452,GB 3110307453,3110307453,NL -3110307454,3110307839,BY +3110307454,3110307583,GB +3110307584,3110307683,BY +3110307684,3110307684,BR +3110307685,3110307839,BY 3110307840,3110308863,IE 3110308864,3110309887,RS 3110309888,3110310911,DE 3110310912,3110311935,FR -3110311936,3110315007,RU +3110311936,3110312959,RU +3110312960,3110313983,UA +3110313984,3110315007,RU 3110315008,3110316031,GB 3110316032,3110317055,RU 3110317056,3110318079,PL @@ -66038,7 +68614,8 @@ 3110358016,3110359039,GE 3110359040,3110360063,IT 3110360064,3110360575,RO -3110360576,3110361087,FI +3110360576,3110360831,FI +3110360832,3110361087,RO 3110361088,3110362111,ES 3110362112,3110363135,CZ 3110363136,3110364159,KW @@ -66261,7 +68838,8 @@ 3110595584,3110596607,NL 3110596608,3110597631,SE 3110597632,3110599679,IR -3110599680,3110600703,RU +3110599680,3110600191,RU +3110600192,3110600703,UA 3110600704,3110601727,GR 3110601728,3110602751,RU 3110602752,3110603775,NL @@ -66339,14 +68917,14 @@ 3110685696,3110686719,NL 3110686720,3110687743,BE 3110687744,3110688767,RO -3110688768,3110689791,RU +3110688768,3110689791,UA 3110689792,3110690815,IT 3110690816,3110691839,GB 3110691840,3110692863,RU 3110692864,3110693887,IT 3110693888,3110694911,UA 3110694912,3110695935,DE -3110695936,3110696959,RU +3110695936,3110696959,UA 3110696960,3110697983,IR 3110697984,3110699007,GB 3110699008,3110700031,IT @@ -66647,8 +69225,8 @@ 3111023616,3111024639,IT 3111024640,3111025663,AT 3111025664,3111026687,DE -3111026688,3111027711,RU -3111027712,3111028735,UA +3111026688,3111027967,RU +3111027968,3111028735,UA 3111028736,3111029759,AT 3111029760,3111031807,SK 3111031808,3111032831,NO @@ -66771,7 +69349,8 @@ 3111157760,3111158783,IR 3111158784,3111159807,CH 3111159808,3111160831,SE -3111160832,3111161855,RU +3111160832,3111161343,RU +3111161344,3111161855,UA 3111161856,3111162879,IS 3111162880,3111163903,IR 3111163904,3111164927,DE @@ -66909,8 +69488,8 @@ 3111310336,3111313407,DE 3111313408,3111313663,GB 3111313664,3111313919,NL -3111313920,3111314431,AT -3111314432,3111315455,GB +3111313920,3111314175,AT +3111314176,3111315455,GB 3111315456,3111316479,IT 3111316480,3111317503,NL 3111317504,3111318527,SY @@ -67029,8 +69608,8 @@ 3111444480,3111445503,SA 3111445504,3111446527,RU 3111446528,3111447551,DE -3111447552,3111447791,NL -3111447792,3111447807,AT +3111447552,3111447775,GB +3111447776,3111447807,AT 3111447808,3111448575,GB 3111448576,3111449599,NO 3111449600,3111451647,DE @@ -67042,7 +69621,8 @@ 3111456256,3111456767,DE 3111456768,3111457791,FR 3111457792,3111458303,GB -3111458304,3111458815,FR +3111458304,3111458559,FR +3111458560,3111458815,GB 3111458816,3111459839,NL 3111459840,3111460863,RU 3111460864,3111461887,GR @@ -67215,7 +69795,9 @@ 3111645184,3111646207,IR 3111646208,3111647231,IT 3111647232,3111648255,ES -3111648256,3111650559,GB +3111648256,3111648767,GB +3111648768,3111649023,NL +3111649024,3111650559,GB 3111650560,3111650815,NL 3111650816,3111651071,SE 3111651072,3111651327,GB @@ -67226,7 +69808,8 @@ 3111654912,3111655423,FR 3111655424,3111656447,NO 3111656448,3111657471,LB -3111657472,3111658495,GB +3111657472,3111658239,GB +3111658240,3111658495,NL 3111658496,3111659519,AL 3111659520,3111660543,IT 3111660544,3111661567,ES @@ -67311,9 +69894,12 @@ 3111755776,3111756799,NO 3111756800,3111757823,NL 3111757824,3111758335,NZ -3111758336,3111758847,HR +3111758336,3111758591,NL +3111758592,3111758847,GB 3111758848,3111759871,DK -3111759872,3111760895,IS +3111759872,3111760383,IS +3111760384,3111760639,GB +3111760640,3111760895,IS 3111760896,3111761919,NL 3111761920,3111762943,SY 3111762944,3111763967,NL @@ -67340,7 +69926,8 @@ 3111786496,3111787519,IT 3111787520,3111788543,RU 3111788544,3111789567,KZ -3111789568,3111790591,GB +3111789568,3111790335,GB +3111790336,3111790591,TR 3111790592,3111791615,CZ 3111791616,3111792639,IT 3111792640,3111793663,CH @@ -67984,10 +70571,476 @@ 3112516608,3112517631,SK 3112517632,3112518655,RO 3112518656,3112519679,SE -3112519680,3112520703,NL +3112519680,3112520191,NL +3112520192,3112520447,GB +3112520448,3112520703,NL 3112520704,3112521727,PT 3112521728,3112522751,FR 3112522752,3112523775,SA +3112523776,3112524799,PL +3112524800,3112525823,IT +3112525824,3112526847,ES +3112526848,3112527871,CZ +3112527872,3112528895,DE +3112528896,3112529919,NL +3112529920,3112530943,DE +3112530944,3112531967,FR +3112531968,3112532991,ES +3112532992,3112534015,KW +3112534016,3112535039,FR +3112535040,3112536063,HR +3112536064,3112537087,CZ +3112537088,3112538111,NO +3112538112,3112539135,CZ +3112539136,3112540159,NL +3112540160,3112541183,IR +3112541184,3112542207,GB +3112542208,3112543231,PL +3112543232,3112544255,IR +3112544256,3112545279,GB +3112545280,3112546303,DE +3112546304,3112547327,GB +3112547328,3112548351,SA +3112548352,3112549375,SI +3112549376,3112550399,CZ +3112550400,3112551423,GB +3112551424,3112552447,CZ +3112552448,3112553471,ES +3112553472,3112554495,SE +3112554496,3112555519,CH +3112555520,3112556543,IR +3112556544,3112557567,IT +3112557568,3112558591,GB +3112558592,3112559615,IQ +3112559616,3112560639,RU +3112560640,3112561663,FR +3112561664,3112562687,DE +3112562688,3112563711,CZ +3112563712,3112564735,AE +3112564736,3112565759,GB +3112565760,3112566783,US +3112566784,3112567807,CZ +3112567808,3112568831,DE +3112568832,3112569855,IT +3112569856,3112571903,SE +3112571904,3112572927,DE +3112572928,3112573951,BE +3112573952,3112574975,DK +3112574976,3112577023,RU +3112577024,3112578047,ES +3112578048,3112579071,DE +3112579072,3112580095,GB +3112580096,3112581119,IT +3112581120,3112582143,NL +3112582144,3112583167,CZ +3112583168,3112584191,NL +3112584192,3112585215,IT +3112585216,3112586239,RU +3112586240,3112587263,LU +3112587264,3112588287,HU +3112588288,3112589311,DE +3112589312,3112590335,FI +3112590336,3112591359,SE +3112591360,3112592383,IR +3112592384,3112593407,FI +3112593408,3112594431,GB +3112594432,3112595455,DE +3112595456,3112596479,GR +3112596480,3112597503,CY +3112597504,3112598527,RU +3112598528,3112599551,NO +3112599552,3112600575,DE +3112600576,3112601599,SY +3112601600,3112602623,ES +3112602624,3112603647,IT +3112603648,3112604671,IE +3112604672,3112605695,RU +3112605696,3112606719,IT +3112606720,3112607743,FR +3112607744,3112608767,CZ +3112608768,3112609791,CH +3112609792,3112610815,TJ +3112610816,3112611839,GE +3112611840,3112612863,LB +3112612864,3112613887,GB +3112613888,3112614911,TR +3112614912,3112615935,SK +3112615936,3112616959,BG +3112616960,3112617983,GB +3112617984,3112620031,RU +3112620032,3112621055,NL +3112621056,3112622079,SK +3112622080,3112623103,NL +3112623104,3112624127,DE +3112624128,3112625151,GB +3112625152,3112626175,BG +3112626176,3112627199,RU +3112627200,3112628223,KZ +3112628224,3112629247,DE +3112629248,3112630271,NO +3112630272,3112631295,NL +3112631296,3112632319,DK +3112632320,3112633343,PL +3112633344,3112634367,CZ +3112634368,3112635391,DE +3112635392,3112636415,BE +3112636416,3112637439,AT +3112637440,3112638463,CZ +3112638464,3112639487,DE +3112639488,3112640511,IR +3112640512,3112641535,DE +3112641536,3112642559,GB +3112642560,3112644607,TR +3112644608,3112645631,SY +3112645632,3112646655,DE +3112646656,3112647679,GB +3112647680,3112648703,DK +3112648704,3112649727,RO +3112649728,3112650751,IQ +3112650752,3112652799,IR +3112652800,3112653823,RU +3112653824,3112654847,IR +3112654848,3112655871,PL +3112655872,3112656895,IT +3112656896,3112657919,CY +3112657920,3112658943,IT +3112658944,3112659967,GB +3112659968,3112660991,TR +3112660992,3112662015,IT +3112662016,3112663039,ES +3112663040,3112664063,PL +3112664064,3112665087,FR +3112665088,3112666111,GB +3112666112,3112667135,CZ +3112667136,3112668159,CH +3112668160,3112669183,BE +3112669184,3112670207,CZ +3112670208,3112671231,RU +3112671232,3112672255,US +3112672256,3112673279,DE +3112673280,3112674303,FR +3112674304,3112676351,GB +3112676352,3112677375,RU +3112677376,3112678399,FR +3112678400,3112679423,RU +3112679424,3112680447,BG +3112680448,3112681471,IQ +3112681472,3112682495,PL +3112682496,3112683519,CZ +3112683520,3112684543,JO +3112684544,3112685567,ES +3112685568,3112687615,GB +3112687616,3112688639,FR +3112688640,3112689663,TR +3112689664,3112690687,PL +3112690688,3112691711,IR +3112691712,3112692735,RU +3112692736,3112693759,FR +3112693760,3112694783,NL +3112694784,3112695807,GB +3112695808,3112696831,LU +3112696832,3112697855,US +3112697856,3112699903,NL +3112699904,3112700927,RO +3112700928,3112701951,KZ +3112701952,3112702975,MD +3112702976,3112703231,SE +3112703232,3112703487,FI +3112703488,3112703743,DK +3112703744,3112703999,NO +3112704000,3112705023,DE +3112705024,3112706047,ES +3112706048,3112707071,RU +3112707072,3112708095,FI +3112708096,3112709119,FR +3112709120,3112710143,IL +3112710144,3112711167,NO +3112711168,3112712191,PT +3112712192,3112713215,TR +3112713216,3112714239,AT +3112714240,3112715263,NL +3112715264,3112717311,GB +3112717312,3112718335,RU +3112718336,3112719359,AT +3112719360,3112720383,TR +3112720384,3112721407,ES +3112721408,3112722431,PL +3112722432,3112722687,US +3112722688,3112723455,BG +3112723456,3112724479,IR +3112724480,3112725503,GB +3112725504,3112726527,CZ +3112726528,3112727551,DE +3112727552,3112728575,DK +3112728576,3112729599,CH +3112729600,3112730623,IT +3112730624,3112731647,NO +3112731648,3112732671,PL +3112732672,3112733695,IT +3112733696,3112734719,DE +3112734720,3112735743,SY +3112735744,3112736767,IQ +3112736768,3112737791,PL +3112737792,3112738815,GB +3112738816,3112739839,DE +3112739840,3112741887,GB +3112741888,3112742911,IR +3112742912,3112743935,RO +3112743936,3112744959,IR +3112744960,3112745983,US +3112745984,3112747007,NL +3112747008,3112748031,IR +3112748032,3112750079,CZ +3112750080,3112751103,TR +3112751104,3112752127,BE +3112752128,3112753151,AT +3112753152,3112754175,ES +3112754176,3112755199,IR +3112755200,3112756223,PL +3112756224,3112757247,AT +3112757248,3112758271,GB +3112758272,3112759295,NL +3112759296,3112760319,IQ +3112760320,3112762367,GB +3112762368,3112763391,IE +3112763392,3112764415,GB +3112764416,3112765439,NO +3112765440,3112766463,GB +3112766464,3112767487,DE +3112767488,3112768511,NL +3112768512,3112769535,IE +3112769536,3112770559,IR +3112770560,3112771583,DE +3112771584,3112772607,NL +3112772608,3112773631,UA +3112773632,3112774655,BE +3112774656,3112775679,ES +3112775680,3112776703,PL +3112776704,3112778751,ES +3112778752,3112779775,IR +3112780800,3112781823,ES +3112781824,3112782847,FR +3112782848,3112783871,RU +3112783872,3112784895,NL +3112784896,3112785919,IT +3112785920,3112786943,TR +3112786944,3112787967,DE +3112787968,3112788991,LU +3112788992,3112791039,ES +3112791040,3112792063,IR +3112792064,3112793087,DK +3112793088,3112794111,BY +3112794112,3112795135,DE +3112795136,3112796159,CZ +3112796160,3112797183,GB +3112797184,3112798207,RO +3112798208,3112799231,DE +3112799232,3112800255,ES +3112800256,3112801279,CZ +3112801280,3112802303,PL +3112802304,3112803327,ES +3112803328,3112804351,RO +3112804352,3112805375,RU +3112805376,3112806399,CH +3112806400,3112807423,DE +3112807424,3112808447,CH +3112808448,3112809471,RU +3112809472,3112809983,GB +3112809984,3112810495,NL +3112810496,3112811519,DE +3112811520,3112812543,SE +3112812544,3112814591,GB +3112814592,3112815615,NL +3112815616,3112816639,IT +3112816640,3112817663,NL +3112817664,3112818687,TR +3112818688,3112819711,UA +3112819712,3112820735,GB +3112820736,3112821759,IT +3112821760,3112822783,FR +3112822784,3112823807,RU +3112823808,3112824831,CH +3112824832,3112825855,GB +3112825856,3112826879,SA +3112826880,3112827903,PL +3112827904,3112828927,FR +3112828928,3112829951,US +3112829952,3112830975,DE +3112830976,3112831999,RU +3112832000,3112833023,AZ +3112833024,3112834047,ES +3112834048,3112835071,CH +3112835072,3112836095,DE +3112836096,3112837119,ES +3112837120,3112838143,NO +3112838144,3112839167,IT +3112839168,3112840191,GR +3112840192,3112841215,CZ +3112841216,3112842239,FI +3112842240,3112843263,DE +3112843264,3112844287,NL +3112844288,3112845311,GB +3112845312,3112846335,SE +3112846336,3112847359,CZ +3112847360,3112848383,NO +3112848384,3112849407,UA +3112849408,3112850431,NL +3112850432,3112851455,TR +3112851456,3112852479,RU +3112852480,3112853503,ES +3112853504,3112854527,BE +3112854528,3112855551,KG +3112855552,3112856575,FR +3112856576,3112857599,CZ +3112857600,3112858623,IE +3112858624,3112859647,FR +3112859648,3112860671,IQ +3112860672,3112861695,AT +3112861696,3112862719,RU +3112862720,3112863743,GB +3112863744,3112865791,DE +3112865792,3112866815,DK +3112866816,3112867839,FR +3112867840,3112869887,GB +3112869888,3112870911,RU +3112870912,3112871935,DE +3112871936,3112872959,IL +3112872960,3112873983,IS +3112873984,3112875007,BG +3112875008,3112876031,RU +3112876032,3112877055,KG +3112877056,3112878079,CZ +3112878080,3112880127,GB +3112880128,3112882175,RU +3112882176,3112883199,NL +3112883200,3112884223,RU +3112884224,3112885247,IT +3112885248,3112886271,CZ +3112886272,3112887295,PL +3112887296,3112888319,UA +3112888320,3112889343,GB +3112889344,3112890367,PL +3112890368,3112891391,NL +3112891392,3112892415,CZ +3112892416,3112893439,NL +3112893440,3112894463,RU +3112894464,3112895487,DE +3112895488,3112896511,BG +3112896512,3112897535,SA +3112897536,3112898559,LB +3112898560,3112899583,PL +3112899584,3112900607,FR +3112900608,3112901631,GB +3112901632,3112902655,IT +3112902656,3112903679,DE +3112903680,3112904703,GB +3112904704,3112905727,PL +3112905728,3112906751,BE +3112906752,3112907775,IT +3112907776,3112908799,UA +3112908800,3112909823,GE +3112909824,3112910847,ES +3112910848,3112911871,IR +3112911872,3112912895,RO +3112912896,3112913919,CH +3112913920,3112914943,DE +3112914944,3112916991,DK +3112916992,3112918015,NO +3112918016,3112920063,DE +3112920064,3112921087,DK +3112921088,3112922111,IT +3112922112,3112923135,RU +3112923136,3112924159,DE +3112924160,3112925183,GE +3112925184,3112926207,SA +3112926208,3112927231,PL +3112927232,3112928255,US +3112928256,3112929279,FR +3112929280,3112930303,UZ +3112930304,3112932351,GB +3112932352,3112933375,NL +3112933376,3112934399,NO +3112934400,3112935423,DE +3112935424,3112937471,NO +3112937472,3112938495,FI +3112938496,3112939519,NO +3112939520,3112940543,ES +3112940544,3112941567,IT +3112941568,3112942591,CH +3112942592,3112943615,NO +3112943616,3112944639,ES +3112944640,3112945663,TR +3112945664,3112946687,UA +3112946688,3112947711,DE +3112947712,3112948735,AT +3112948736,3112949759,RU +3112949760,3112950783,CZ +3112950784,3112951807,JO +3112951808,3112952831,SK +3112952832,3112953855,IL +3112953856,3112954879,DK +3112954880,3112955903,DE +3112955904,3112956927,IL +3112956928,3112958975,FR +3112958976,3112959999,EE +3112960000,3112961023,DK +3112961024,3112962047,IR +3112962048,3112963071,GB +3112963072,3112964095,IR +3112964096,3112965119,GB +3112965120,3112966143,NL +3112966144,3112967167,PL +3112967168,3112968191,SK +3112968192,3112969215,ES +3112969216,3112970239,DE +3112970240,3112971263,SK +3112971264,3112972287,FR +3112972288,3112973311,US +3112973312,3112974335,SE +3112974336,3112975359,IR +3112975360,3112977407,ES +3112977408,3112978431,FR +3112978432,3112979455,NL +3112979456,3112980479,PL +3112980480,3112981503,GB +3112981504,3112982527,AT +3112982528,3112983551,CH +3112983552,3112984575,IE +3112984576,3112985599,AE +3112985600,3112986623,PL +3112986624,3112987647,DE +3112987648,3112988671,HU +3112988672,3112989695,AT +3112989696,3112990719,SE +3112990720,3112991743,PL +3112991744,3112992767,TR +3112992768,3112993791,FR +3112993792,3112994815,RU +3112994816,3112995839,FR +3112995840,3112996863,AT +3112996864,3112997887,GB +3112997888,3112998911,RU +3112998912,3112999935,IT +3112999936,3113000959,NL +3113000960,3113001983,RU +3113001984,3113003007,NL +3113003008,3113004031,IT +3113004032,3113006079,US +3113006080,3113007103,PS +3113007104,3113008127,NL +3113008128,3113009151,ES +3113009152,3113010175,IQ +3113010176,3113011199,FR +3113011200,3113013247,DE +3113013248,3113014271,RU +3113014272,3113016319,ES +3113016320,3113017343,FI +3113017344,3113018367,NL +3113018368,3113019391,LT +3113019392,3113020415,IR +3113020416,3113021439,CZ +3113021440,3113022463,IR +3113022464,3113023487,CZ 3113710318,3113710318,CA 3120562176,3120594943,CO 3120594944,3120599039,AR @@ -68211,16 +71264,15 @@ 3133067264,3133071359,PA 3133071360,3133071871,CY 3133071872,3133073407,PA -3133073408,3133073663,CW -3133073664,3133073919,AW -3133073920,3133074431,CW +3133073408,3133074431,CW 3133074432,3133075455,CL 3133075456,3133079551,CW 3133079552,3133145087,AR 3133145088,3133311999,BR 3133312000,3133313023,MX 3133313024,3134289919,BR -3134291968,3136961535,BR +3134291968,3135832063,BR +3135833088,3136961535,BR 3136962560,3136985087,BR 3136985088,3136986111,AR 3136986112,3140614143,BR @@ -68273,7 +71325,9 @@ 3156933888,3156933909,CN 3156933910,3156933910,SG 3156933911,3156934143,CN -3156934144,3156934655,SG +3156934144,3156934527,SG +3156934528,3156934591,CN +3156934592,3156934655,SG 3156934656,3157000191,RU 3157000192,3157008383,MK 3157008384,3157016575,RU @@ -68287,7 +71341,9 @@ 3157786624,3158048767,TR 3158048768,3158070548,CH 3158070549,3158070549,SE -3158070550,3158310911,CH +3158070550,3158259455,CH +3158259456,3158259711,DE +3158259712,3158310911,CH 3158310912,3158312959,FI 3158312960,3158315007,AZ 3158315008,3158317055,DE @@ -68341,9 +71397,11 @@ 3158417408,3158419455,NL 3158419456,3158421503,FR 3158421504,3158423551,GB -3158423552,3158425159,MT +3158423552,3158425087,MT +3158425088,3158425159,NL 3158425160,3158425167,IE -3158425168,3158425599,MT +3158425168,3158425343,NL +3158425344,3158425599,MT 3158425600,3158427647,NL 3158427648,3158429695,DE 3158429696,3158431743,RU @@ -68368,7 +71426,9 @@ 3158638592,3158704127,LT 3158704128,3158835199,KW 3158835200,3158851583,IQ -3158851584,3158859775,RU +3158851584,3158853375,RU +3158853376,3158853631,NL +3158853632,3158859775,RU 3158859776,3158859903,NL 3158859904,3158860031,CZ 3158860032,3158860287,GB @@ -68562,29 +71622,25 @@ 3161616384,3161618431,GB 3161618432,3161620479,IQ 3161620480,3161636863,DK -3161636864,3161641215,RU -3161641216,3161641983,UA -3161641984,3161642239,RU -3161642240,3161645055,UA +3161636864,3161639423,RU +3161639424,3161639935,UA +3161639936,3161640447,RU +3161640448,3161645055,UA 3161645056,3161651975,RU 3161651976,3161651976,SE 3161651977,3161653247,RU 3161653248,3161669631,LU -3161669632,3161670143,FR -3161670144,3161670399,RE -3161670400,3161671423,FR -3161671424,3161671679,RE -3161671680,3161671935,FR -3161671936,3161672191,RE -3161672192,3161678335,FR -3161678336,3161678591,MQ -3161678592,3161679871,FR +3161669632,3161679871,FR 3161679872,3161680127,GP 3161680128,3161680383,FR 3161680384,3161680895,GP 3161680896,3161681151,FR 3161681152,3161681407,GP -3161681408,3161686015,FR +3161681408,3161682431,FR +3161682432,3161682687,GF +3161682688,3161684479,FR +3161684480,3161684735,MQ +3161684736,3161686015,FR 3161686016,3161702399,UA 3161702400,3161718783,AM 3161718784,3161735167,PL @@ -68659,9 +71715,7 @@ 3162316800,3162324991,PL 3162324992,3162327039,IE 3162327040,3162329087,CH -3162329088,3162329225,IR -3162329226,3162329226,IE -3162329227,3162331135,IR +3162329088,3162331135,IE 3162331136,3162333183,GB 3162333184,3162341375,IT 3162341376,3162349567,PL @@ -68768,7 +71822,9 @@ 3164936192,3164937749,LT 3164937750,3164937750,FR 3164937751,3164938239,LT -3164938240,3164946727,FR +3164938240,3164939705,FR +3164939706,3164939706,ES +3164939707,3164946727,FR 3164946728,3164946731,NL 3164946732,3164947067,FR 3164947068,3164947071,IT @@ -68860,7 +71916,10 @@ 3164976160,3164976295,FR 3164976296,3164976303,IT 3164976304,3164995583,FR -3164995584,3165040639,NL +3164995584,3165032447,NL +3165032448,3165036543,GB +3165036544,3165038591,NL +3165038592,3165040639,GB 3165040640,3165044735,SG 3165044736,3165048831,NL 3165048832,3165061119,SG @@ -68901,12 +71960,13 @@ 3166306304,3166437375,RU 3166437376,3166568447,BE 3166568448,3166593023,UA -3166593792,3166594047,UA 3166601216,3166609407,RU 3166609408,3166633983,UA 3166633984,3166639103,RU 3166639104,3166639359,UA -3166639360,3166642175,RU +3166639360,3166641407,RU +3166641408,3166641663,UA +3166641664,3166642175,RU 3166642176,3166646271,UA 3166646272,3166650367,CZ 3166650368,3166654463,UA @@ -68979,7 +72039,7 @@ 3167899648,3167902719,RO 3167902720,3167902975,BE 3167902976,3167903231,NL -3167903232,3167903743,RO +3167903232,3167903743,DE 3167903744,3167932415,IR 3167932416,3167933439,CH 3167933440,3167933695,RO @@ -69059,7 +72119,7 @@ 3168111360,3168111615,IT 3168111616,3168112639,FR 3168112640,3168116735,IR -3168116736,3168120831,RO +3168116736,3168120831,IT 3168120832,3168126975,IR 3168126976,3168127999,RO 3168128000,3168128255,MX @@ -69073,7 +72133,8 @@ 3168131712,3168131839,CN 3168131840,3168132095,RO 3168132096,3168133119,MD -3168133120,3168135679,RO +3168133120,3168135167,NL +3168135168,3168135679,RO 3168135680,3168136191,CZ 3168136192,3168137471,RO 3168137472,3168137727,MD @@ -69117,7 +72178,8 @@ 3168192000,3168192255,GB 3168192256,3168192511,RO 3168192512,3168194559,MD -3168194560,3168198655,RO +3168194560,3168196607,RO +3168196608,3168198655,IR 3168198656,3168199167,ES 3168199168,3168199679,RO 3168199680,3168200703,MD @@ -69131,7 +72193,9 @@ 3168212736,3168212991,FR 3168212992,3168215551,RO 3168215552,3168215807,TH -3168215808,3168223743,RO +3168215808,3168221183,RO +3168221184,3168223231,ES +3168223232,3168223743,RO 3168223744,3168224255,MD 3168224256,3168237567,RO 3168237568,3168239615,PS @@ -69182,9 +72246,12 @@ 3169648640,3169714175,MD 3169714176,3169779711,FI 3169779712,3169845247,UA -3169845248,3169854463,RO +3169845248,3169851391,RO +3169851392,3169853439,NL +3169853440,3169854463,RO 3169854464,3169854719,ES -3169854720,3169863167,RO +3169854720,3169862911,RO +3169862912,3169863167,IT 3169863168,3169863423,MD 3169863424,3169863679,RO 3169863680,3169864703,MD @@ -69207,7 +72274,9 @@ 3169905664,3169906687,ES 3169906688,3169913855,RO 3169913856,3169914111,GB -3169914112,3169920767,RO +3169914112,3169916927,RO +3169916928,3169918975,PL +3169918976,3169920767,RO 3169920768,3169921023,BZ 3169921024,3169923071,GB 3169923072,3169927423,RO @@ -69367,8 +72436,7 @@ 3187948544,3187948799,GT 3187948800,3187948927,HN 3187948928,3187949311,GT -3187949312,3187949439,HN -3187949440,3187949567,GT +3187949312,3187949567,HN 3187949568,3187950126,BQ 3187950127,3187950127,CW 3187950128,3187953663,BQ @@ -69547,9 +72615,7 @@ 3191611392,3191619583,VE 3191619584,3191619903,CL 3191619904,3191619935,VE -3191619936,3191624191,CL -3191624192,3191624447,CO -3191624448,3191635967,CL +3191619936,3191635967,CL 3191635968,3191637759,CO 3191637760,3191638015,AR 3191638016,3191647743,CO @@ -70027,7 +73093,9 @@ 3195235328,3195235583,PA 3195235584,3195236351,CR 3195236352,3195240447,AR -3195240448,3195256831,HT +3195240448,3195253247,HT +3195253248,3195253503,DO +3195253504,3195256831,HT 3195256832,3195265023,AR 3195265024,3195273215,CO 3195273216,3195535359,PE @@ -70114,9 +73182,7 @@ 3195809280,3195809791,BZ 3195809792,3195811839,PE 3195811840,3195813887,AR -3195813888,3195814655,DO -3195814656,3195814911,GP -3195814912,3195822079,DO +3195813888,3195822079,DO 3195822080,3195830271,CO 3195830272,3195838463,AR 3195838464,3195840511,HN @@ -70183,9 +73249,7 @@ 3199565824,3199582207,NI 3199582208,3199598591,HN 3199598592,3199631359,CO -3199631360,3199719167,AR -3199719168,3199719423,DE -3199719424,3199729663,AR +3199631360,3199729663,AR 3199729664,3199762431,NI 3199762432,3199778815,CO 3199778816,3199779839,AR @@ -70233,10 +73297,10 @@ 3201560576,3201561599,PY 3201561600,3201562623,AR 3201562624,3201563647,CL -3201563648,3201564287,PA -3201564288,3201564415,GB -3201564416,3201564543,PA -3201564544,3201564671,GB +3201563648,3201563903,CH +3201563904,3201564159,DE +3201564160,3201564415,GB +3201564416,3201564671,NL 3201564672,3201630207,NI 3201630208,3201695743,TT 3201695744,3201761279,EC @@ -70250,16 +73314,18 @@ 3201867776,3201875967,PE 3201875968,3201880063,CO 3201880064,3201884159,EC -3201884160,3201894399,VE -3201894400,3201925119,AR +3201884160,3201891583,VE +3201891584,3201891839,US +3201891840,3201894399,VE +3201894400,3201905407,AR +3201905408,3201905663,CO +3201905664,3201925119,AR 3201925120,3201957887,CL 3201957888,3202088959,PA 3202088960,3202127999,AR 3202128000,3202128015,CW 3202128016,3202220031,AR -3202220032,3202280447,PE -3202280448,3202280575,SE -3202280576,3202351103,PE +3202220032,3202351103,PE 3202351104,3202875391,AR 3202875392,3203399679,PE 3203399680,3203465215,CO @@ -70384,7 +73450,8 @@ 3210765056,3210765071,SE 3210765072,3210765311,BR 3210765312,3210765567,CL -3210765568,3210766079,US +3210765568,3210765823,US +3210765824,3210766079,ES 3210766080,3210766335,CL 3210766336,3210766591,US 3210766592,3210766847,CL @@ -70709,76 +73776,70 @@ 3212574720,3212836863,CL 3212836864,3213885439,BR 3213885440,3214934015,CO -3214934016,3219652607,BR -3219652608,3219653119,US -3219653120,3219653127,BR +3214934016,3219653127,BR 3219653128,3219653135,US -3219653136,3219653183,AU -3219653184,3219653247,BR -3219653248,3219653663,HK -3219653664,3219653695,SG -3219653696,3219653711,AU -3219653712,3219653727,US -3219653728,3219653823,JP -3219653824,3219653887,BR -3219653888,3219654399,US -3219654400,3219654463,CH -3219654464,3219654527,SE -3219654528,3219657727,US -3219657728,3219657983,SG -3219657984,3219658239,HK -3219658240,3219658495,FI -3219658496,3219658751,SE -3219658752,3219673183,US -3219673184,3219673343,BR -3219673344,3219673599,US -3219673600,3219673951,BR -3219673952,3219673983,IE -3219673984,3219685375,BR -3219685376,3219726335,US +3219653136,3219653715,BR +3219653716,3219653716,US +3219653717,3219673087,BR +3219673088,3219673151,US +3219673152,3219673215,BR +3219673216,3219673343,US +3219673344,3219673727,BR +3219673728,3219673855,US +3219673856,3219726335,BR 3219726336,3219734527,JP 3219734528,3219750911,NL -3219750912,3219783679,US -3219783680,3219783743,AU +3219750912,3219755007,BR +3219755008,3219755263,US +3219755264,3219761151,BR +3219761152,3219765247,US +3219765248,3219783743,BR 3219783744,3219783751,HK -3219783752,3219783807,BR -3219783808,3219783871,AU -3219783872,3219783935,BR +3219783752,3219783935,BR 3219783936,3219784191,US 3219784192,3219784703,HK -3219784704,3219787775,US +3219784704,3219785727,BR +3219785728,3219786751,US +3219786752,3219787263,NL +3219787264,3219787775,IE 3219787776,3219791871,HK -3219791872,3219800319,US -3219800320,3219800575,NL +3219791872,3219800063,US +3219800064,3219800575,BR 3219800576,3219800591,US 3219800592,3219800703,BR 3219800704,3219800847,US -3219800848,3219800863,BR -3219800864,3219800895,US -3219800896,3219802111,BR +3219800848,3219802111,BR 3219802112,3219802623,US -3219802624,3219803135,NL -3219803136,3219808255,US -3219808256,3219816447,BR +3219802624,3219803135,BR +3219803136,3219803647,SG +3219803648,3219804159,US +3219804160,3219808767,BR +3219808768,3219816447,NL 3219816448,3219818495,US 3219818496,3219819007,BR 3219819008,3219819519,JP -3219819520,3219820543,HK -3219820544,3219841023,US +3219819520,3219820063,HK +3219820064,3219820079,JP +3219820080,3219821567,HK +3219821568,3219824127,BR +3219824128,3219824639,US +3219824640,3219841023,BR 3219841024,3219842047,NL -3219842048,3219842815,US -3219842816,3219843071,JP -3219843072,3219844351,US -3219844352,3219845119,BR +3219842048,3219843071,BR +3219843072,3219844095,US +3219844096,3219845119,BR 3219845120,3219847167,US 3219847168,3219848191,BR 3219848192,3219848447,AU 3219848448,3219849215,BR -3219849216,3219853311,US -3219853312,3219865599,BR -3219865600,3219881983,US +3219849216,3219851263,US +3219851264,3219852287,NL +3219852288,3219853311,IE +3219853312,3219881983,BR 3219881984,3219914751,IE -3219914752,3220039679,US +3219914752,3220029439,US +3220029440,3220037631,IE +3220037632,3220039679,US 3220039680,3220040703,NL 3220040704,3220041215,JP 3220041216,3220041471,HK @@ -70838,7 +73899,9 @@ 3221576448,3221577727,US 3221577728,3221577983,CA 3221577984,3221578239,NL -3221578240,3221589503,US +3221578240,3221578313,US +3221578314,3221578314,JP +3221578315,3221589503,US 3221589504,3221589759,NL 3221589760,3221590015,US 3221590016,3221590271,CA @@ -70856,9 +73919,7 @@ 3221618176,3221618431,NL 3221618432,3221618687,US 3221618688,3221618943,GB -3221618944,3221621247,US -3221621248,3221621503,GB -3221621504,3221647103,US +3221618944,3221647103,US 3221647104,3221647359,FR 3221647360,3221656831,US 3221656832,3221657087,AU @@ -70924,7 +73985,21 @@ 3222075136,3222075391,NL 3222075392,3222274559,US 3222274560,3222274815,AU -3222274816,3222305535,US +3222274816,3222275071,US +3222275072,3222275583,JP +3222275584,3222277631,US +3222277632,3222278143,IT +3222278144,3222279679,US +3222279680,3222280191,PL +3222280192,3222281215,US +3222281216,3222281727,GB +3222281728,3222284543,US +3222284544,3222285055,BR +3222285056,3222287359,US +3222287360,3222287871,NL +3222287872,3222288383,US +3222288384,3222288895,JP +3222288896,3222305535,US 3222305536,3222309119,SE 3222309120,3222309375,DE 3222309376,3222313727,SE @@ -70956,9 +74031,10 @@ 3222941696,3222952703,US 3222952704,3222952959,AU 3222952960,3222953215,US -3222953216,3222953727,AU +3222953216,3222953471,JP +3222953472,3222953727,AU 3222953728,3222953983,US -3222953984,3222954239,AU +3222953984,3222954239,JP 3222954240,3222956287,US 3222956288,3222957567,FI 3222957824,3222962431,FI @@ -71045,7 +74121,24 @@ 3223316480,3223321343,US 3223321344,3223321599,CA 3223321600,3223321855,FR -3223321856,3223390719,US +3223321856,3223331455,US +3223331456,3223331487,IE +3223331488,3223332879,US +3223332880,3223332911,GB +3223332912,3223333031,US +3223333032,3223333039,IE +3223333040,3223333543,US +3223333544,3223333551,IE +3223333552,3223333655,US +3223333656,3223333663,NL +3223333664,3223333743,US +3223333744,3223333767,IE +3223333768,3223333775,US +3223333776,3223333783,IE +3223333784,3223333823,NL +3223333824,3223335703,US +3223335704,3223335711,SG +3223335712,3223390719,US 3223390720,3223390975,MU 3223390976,3223391999,US 3223392000,3223392511,NL @@ -71261,7 +74354,7 @@ 3223964160,3223964415,US 3223964416,3223964671,AU 3223964672,3223965183,US -3223965184,3223965439,AU +3223965184,3223965439,ID 3223965440,3223966207,US 3223966208,3223966463,NL 3223966464,3223967743,US @@ -71309,7 +74402,7 @@ 3224030464,3224030719,US 3224030720,3224030975,CA 3224030976,3224038655,US -3224038656,3224038911,AU +3224038656,3224038911,JP 3224038912,3224084991,US 3224084992,3224087551,SE 3224087552,3224088063,US @@ -71521,7 +74614,8 @@ 3224884480,3224885247,US 3224885248,3224885503,CA 3224885504,3224886015,US -3224886016,3224886527,AU +3224886016,3224886271,AU +3224886272,3224886527,JP 3224886528,3224887295,US 3224887296,3224887551,CA 3224887552,3224889343,US @@ -71553,7 +74647,9 @@ 3225057792,3225060607,US 3225060608,3225061631,AU 3225061632,3225062399,US -3225062400,3225063423,VC +3225062400,3225062911,VC +3225062912,3225063167,LC +3225063168,3225063423,VC 3225063424,3225076223,US 3225076224,3225076479,CA 3225076480,3225076991,US @@ -71781,7 +74877,9 @@ 3225785600,3225788159,CA 3225788160,3225807359,US 3225807360,3225807615,DE -3225807616,3225812991,US +3225807616,3225811711,US +3225811712,3225811967,GB +3225811968,3225812991,US 3225812992,3225843711,FR 3225843712,3225847039,US 3225847040,3225847551,NL @@ -71885,9 +74983,10 @@ 3226012672,3226012927,AU 3226012928,3226014463,US 3226014464,3226014975,NL -3226014976,3226015487,AU +3226014976,3226015231,NZ +3226015232,3226015487,AU 3226015488,3226015743,US -3226015744,3226016255,AU +3226015744,3226016255,ID 3226016256,3226018303,US 3226018304,3226018559,DE 3226018560,3226021119,CH @@ -71970,7 +75069,9 @@ 3226305536,3226307327,GB 3226307328,3226307583,US 3226307584,3226308095,NL -3226308096,3226366975,US +3226308096,3226335231,US +3226335232,3226335487,RO +3226335488,3226366975,US 3226366976,3226367231,CA 3226367232,3226374143,US 3226374144,3226375423,DE @@ -72087,13 +75188,11 @@ 3226696192,3226696703,AU 3226696704,3226697727,US 3226697728,3226697983,CA -3226697984,3226698495,US -3226698496,3226698751,CA -3226698752,3226700287,US -3226700288,3226700799,CA -3226700800,3226701055,US -3226701056,3226701567,CA -3226701568,3226705151,US +3226697984,3226698239,US +3226698240,3226699519,CA +3226699520,3226700287,US +3226700288,3226701823,CA +3226701824,3226705151,US 3226705152,3226705407,AU 3226705408,3226705919,US 3226705920,3226706175,FR @@ -72176,7 +75275,7 @@ 3226792960,3226793215,ZA 3226793216,3226793983,DE 3226793984,3226795263,US -3226795264,3226795519,AU +3226795264,3226795519,NZ 3226795520,3226800127,US 3226800128,3226800639,DE 3226800640,3226811391,US @@ -72220,7 +75319,7 @@ 3226992640,3226992895,US 3226992896,3226993151,NL 3226993152,3226993663,US -3226993664,3226993919,NL +3226993664,3226993919,DE 3226993920,3226994175,US 3226994176,3226994687,AU 3226994688,3226994943,US @@ -72233,8 +75332,8 @@ 3227013120,3227013375,AU 3227013376,3227013887,US 3227013888,3227014399,NL -3227014400,3227014655,AU -3227014656,3227014911,NL +3227014400,3227014655,NZ +3227014656,3227014911,FI 3227014912,3227017471,US 3227017472,3227017983,NL 3227018240,3227018495,US @@ -72279,7 +75378,7 @@ 3227237120,3227237631,US 3227237632,3227237887,NO 3227237888,3227238143,US -3227238144,3227238399,NL +3227238144,3227238399,GB 3227238400,3227240191,US 3227240192,3227240447,GB 3227240704,3227240959,GB @@ -72336,8 +75435,8 @@ 3227312384,3227320319,US 3227320320,3227362047,FR 3227362048,3227362303,US -3227362304,3227362559,GB -3227362560,3227385855,FR +3227362304,3227362815,GB +3227362816,3227385855,FR 3227385856,3227391999,US 3227392000,3227392255,NL 3227392256,3227393023,US @@ -72359,7 +75458,7 @@ 3227405568,3227414271,US 3227414272,3227416063,GB 3227416064,3227417087,US -3227417088,3227417343,AU +3227417088,3227417343,BN 3227417344,3227418111,US 3227418112,3227418367,CA 3227418368,3227425791,US @@ -72515,7 +75614,9 @@ 3227765481,3227765482,US 3227765483,3227765503,CA 3227765504,3227765759,US -3227765760,3227777759,CA +3227765760,3227774751,CA +3227774752,3227774783,US +3227774784,3227777759,CA 3227777760,3227777763,US 3227777764,3227777951,CA 3227777952,3227777967,US @@ -72593,7 +75694,7 @@ 3227846912,3227847423,US 3227847424,3227847679,NL 3227847680,3227848703,US -3227848704,3227848959,AU +3227848704,3227848959,NZ 3227848960,3227851775,US 3227851776,3227852031,NL 3227852032,3227853311,US @@ -72605,7 +75706,7 @@ 3227864064,3227865343,US 3227865344,3227867647,NL 3227867648,3227867903,BR -3227867904,3227868159,AU +3227867904,3227868159,TH 3227868160,3227872767,US 3227872768,3227873023,GB 3227873024,3227874047,NL @@ -72617,7 +75718,9 @@ 3227879680,3227879935,NL 3227879936,3227880959,US 3227880960,3227881215,MU -3227881216,3227885823,US +3227881216,3227883319,US +3227883320,3227883320,CA +3227883321,3227885823,US 3227885824,3227887871,ES 3227887872,3227888127,PR 3227888128,3227888383,NL @@ -72661,8 +75764,7 @@ 3227955712,3227964927,US 3227964928,3227965183,NL 3227965184,3227967487,US -3227967488,3227967743,FR -3227967744,3227967999,NL +3227967488,3227967999,NL 3227968000,3227968255,US 3227968256,3227968767,GB 3227968768,3227969023,RU @@ -72687,7 +75789,8 @@ 3227982848,3227985919,GB 3227985920,3227986175,DE 3227986176,3227986431,US -3227986432,3227986943,AU +3227986432,3227986687,AU +3227986688,3227986943,JP 3227986944,3227987455,US 3227987456,3227987711,AU 3227987712,3227997439,US @@ -72742,14 +75845,15 @@ 3228084480,3228085247,US 3228085248,3228085503,AU 3228085504,3228100607,US -3228100608,3228101119,AU +3228100608,3228101119,JP 3228101120,3228102143,US 3228102144,3228102399,NL 3228102400,3228103423,US 3228103424,3228103679,CA 3228103680,3228103935,US 3228103936,3228104191,FR -3228104192,3228104703,AU +3228104192,3228104447,JP +3228104448,3228104703,AU 3228104704,3228104959,NL 3228104960,3228105471,US 3228105472,3228105727,NL @@ -72784,7 +75888,8 @@ 3228264704,3228265983,US 3228265984,3228266239,IE 3228266240,3228266495,PR -3228266496,3228267007,AU +3228266496,3228266751,AU +3228266752,3228267007,NZ 3228267008,3228267263,NL 3228267264,3228269055,US 3228269056,3228269311,PT @@ -72853,7 +75958,7 @@ 3228348160,3228353279,US 3228353280,3228358399,SE 3228358400,3228362239,US -3228362240,3228362495,AU +3228362240,3228362495,TH 3228362496,3228363263,US 3228363264,3228363519,CH 3228363520,3228364287,US @@ -72881,23 +75986,27 @@ 3228400640,3228402687,DE 3228403200,3228403711,DE 3228403968,3228404223,DE -3228404736,3228405503,FR +3228404736,3228404895,FR +3228404896,3228404991,GB +3228404992,3228405503,FR 3228405504,3228405759,DE 3228405760,3228406015,FR 3228406016,3228406271,US 3228406272,3228406527,IN -3228406528,3228407039,FR +3228406528,3228406783,BR +3228406784,3228407039,FR 3228407296,3228420095,DE 3228420608,3228420863,DE 3228421120,3228424447,DE 3228424704,3228424959,US -3228425472,3228425983,DE +3228425216,3228426239,DE 3228426752,3228427263,DE 3228427776,3228428031,DE 3228428288,3228430335,DE 3228430592,3228430847,DE 3228430848,3228431103,MU -3228431872,3228434431,DE +3228431872,3228433663,DE +3228433920,3228434431,DE 3228434432,3228456191,US 3228456192,3228456447,CA 3228456448,3228457471,US @@ -72923,7 +76032,7 @@ 3228522496,3228522751,NL 3228522752,3228525823,US 3228525824,3228526079,NL -3228526080,3228526335,AU +3228526080,3228526335,NZ 3228526336,3228526847,NL 3228526848,3228527103,AU 3228527104,3228531711,US @@ -73071,7 +76180,8 @@ 3229276160,3229281023,IE 3229281024,3229281791,US 3229281792,3229283071,PT -3229283072,3229354495,US +3229283072,3229285887,US +3229286400,3229354495,US 3229354496,3229355775,AU 3229355776,3229358079,US 3229358080,3229358335,AU @@ -73092,7 +76202,7 @@ 3229382144,3229390847,US 3229390848,3229391103,AU 3229391104,3229391359,US -3229391360,3229391615,AU +3229391360,3229391615,CN 3229391616,3229391871,NL 3229391872,3229395455,US 3229395456,3229408255,RU @@ -73135,7 +76245,8 @@ 3229830912,3229831167,NL 3229831168,3229833471,US 3229833472,3229833727,NL -3229833728,3229834495,AU +3229833728,3229834239,IN +3229834240,3229834495,AU 3229834496,3229834751,US 3229834752,3229835007,CA 3229835008,3229835263,US @@ -73162,11 +76273,11 @@ 3229878784,3229879039,IT 3229879040,3229879295,NO 3229879296,3229880063,US -3229880064,3229880319,AU +3229880064,3229880319,KR 3229880320,3229881087,US 3229881088,3229881343,CA 3229881344,3229884159,US -3229884160,3229884415,AU +3229884160,3229884415,JP 3229884416,3229884927,US 3229884928,3229885183,NL 3229885184,3229885439,BR @@ -73222,9 +76333,10 @@ 3229956864,3229958143,US 3229958144,3229958399,NL 3229958400,3229958655,US -3229958656,3229959167,AU -3229959168,3229962079,US -3229962080,3229962111,CA +3229958656,3229958911,AU +3229958912,3229959167,SG +3229959168,3229962047,US +3229962048,3229962111,CA 3229962112,3229968127,US 3229968384,3229969407,US 3229969408,3229969663,PT @@ -73267,7 +76379,9 @@ 3230096384,3230096639,JP 3230096640,3230096895,US 3230096896,3230097151,JP -3230097408,3230100735,JP +3230097408,3230097663,JP +3230098688,3230098943,JP +3230099200,3230100735,JP 3230100736,3230100991,US 3230100992,3230101503,PR 3230101504,3230104319,US @@ -73296,7 +76410,7 @@ 3230126848,3230128895,US 3230128896,3230129151,NL 3230129152,3230129663,US -3230129664,3230129919,AU +3230129664,3230129919,JP 3230129920,3230130431,US 3230130432,3230130687,NL 3230130688,3230131711,US @@ -73330,7 +76444,7 @@ 3230152192,3230152447,FR 3230152448,3230153215,BF 3230153216,3230153471,FR -3230153472,3230153727,AU +3230153472,3230153727,PF 3230153728,3230153983,US 3230153984,3230154239,NL 3230154240,3230156543,US @@ -73473,7 +76587,7 @@ 3230825472,3230826239,ES 3230826240,3230827519,US 3230827520,3230827775,NL -3230827776,3230828031,AU +3230827776,3230828031,NZ 3230828032,3230828543,HU 3230828544,3230829055,GB 3230829568,3230830079,RU @@ -73504,7 +76618,7 @@ 3230845184,3230845951,US 3230845952,3230846207,CZ 3230846208,3230849535,US -3230849536,3230850047,AU +3230849536,3230850047,NZ 3230850048,3230851839,US 3230851840,3230852351,NL 3230852352,3230852607,BR @@ -73646,7 +76760,7 @@ 3231028736,3231042047,US 3231042048,3231042303,GU 3231042304,3231043839,US -3231043840,3231044095,AU +3231043840,3231044095,JP 3231044096,3231047935,US 3231047936,3231048191,GB 3231048192,3231048447,US @@ -73875,12 +76989,14 @@ 3231308288,3231308799,US 3231308800,3231309055,CA 3231310848,3231316735,US -3231316736,3231316991,AU +3231316736,3231316991,NZ 3231316992,3231318783,US 3231319040,3231321343,US 3231321344,3231321599,CA 3231321600,3231322111,US -3231322112,3231324671,SG +3231322112,3231322367,JP +3231322368,3231324159,SG +3231324160,3231324671,JP 3231324672,3231325183,US 3231325184,3231326207,CA 3231326208,3231352831,US @@ -73899,15 +77015,16 @@ 3231478016,3231482879,US 3231482880,3231483135,BE 3231483136,3231484927,US -3231484928,3231487999,JP +3231484928,3231485439,JP +3231485696,3231487999,JP 3231488512,3231488767,JP 3231489280,3231489535,US 3231489536,3231489791,JP 3231489792,3231490047,AU 3231490048,3231490559,US -3231490560,3231490815,NL +3231490560,3231490815,GB 3231490816,3231491327,US -3231491328,3231491583,AU +3231491328,3231491583,NZ 3231491584,3231491839,US 3231491840,3231492095,GB 3231492096,3231493631,US @@ -73997,7 +77114,9 @@ 3231588864,3231589119,GB 3231589120,3231591679,US 3231591680,3231591935,AU -3231591936,3231596031,US +3231591936,3231593983,US +3231593984,3231594239,GB +3231594240,3231596031,US 3231596032,3231596543,PR 3231596544,3231634943,US 3231634944,3231635455,CA @@ -74037,7 +77156,7 @@ 3231711232,3231713023,US 3231713024,3231713279,CA 3231713280,3231713791,US -3231713792,3231714047,NL +3231713792,3231714047,GB 3231714048,3231715071,US 3231715072,3231715327,NL 3231715328,3231715583,AU @@ -74124,7 +77243,7 @@ 3231793664,3231800319,US 3231800320,3231801343,CN 3231801344,3231809535,CA -3231809536,3231810047,AU +3231809536,3231810047,NZ 3231810048,3231842303,US 3231842304,3231843327,RU 3231843328,3231844351,NO @@ -74231,7 +77350,11 @@ 3232098304,3232100095,SE 3232100096,3232100351,IE 3232100352,3232101119,GB -3232101120,3232104447,SE +3232101120,3232102143,SE +3232102144,3232102144,DK +3232102145,3232102145,SE +3232102146,3232102399,DK +3232102400,3232104447,SE 3232104448,3232106495,DE 3232107520,3232108543,RU 3232108544,3232112639,DE @@ -74258,9 +77381,7 @@ 3232163840,3232165887,RU 3232169216,3232169727,DE 3232169728,3232169983,PL -3232169984,3232183295,IT -3232183296,3232184319,SI -3232184320,3232235519,IT +3232169984,3232235519,IT 3232301056,3232309247,US 3232309248,3232311807,SG 3232311808,3232399615,US @@ -74368,7 +77489,7 @@ 3233548800,3233549055,NL 3233549056,3233549311,BR 3233549312,3233557247,US -3233557248,3233557503,AU +3233557248,3233557503,NZ 3233557504,3233561855,EC 3233561856,3233562367,US 3233562368,3233562879,GB @@ -74376,7 +77497,7 @@ 3233563136,3233563903,US 3233563904,3233564159,NL 3233564160,3233564415,US -3233564416,3233564671,AU +3233564416,3233564671,NZ 3233564672,3233564927,US 3233564928,3233566719,JP 3233567744,3233567999,US @@ -74422,7 +77543,8 @@ 3233590016,3233590271,TW 3233590272,3233590527,TH 3233590528,3233590783,PR -3233590784,3233591295,AU +3233590784,3233591039,PH +3233591040,3233591295,ID 3233591296,3233593599,US 3233593600,3233593855,NZ 3233593856,3233594111,AU @@ -74434,7 +77556,7 @@ 3233596928,3233605887,US 3233605888,3233607167,PL 3233607168,3233607935,US -3233607936,3233608191,AU +3233607936,3233608191,NZ 3233608192,3233609727,HU 3233609984,3233612031,US 3233612032,3233612287,NL @@ -74445,7 +77567,7 @@ 3233615616,3233617407,US 3233617408,3233617663,CA 3233617664,3233617919,NL -3233617920,3233618175,AU +3233617920,3233618175,JP 3233618176,3233620479,US 3233620480,3233620735,AU 3233620736,3233620991,US @@ -74494,7 +77616,7 @@ 3233664256,3233665023,US 3233665024,3233666047,AU 3233666048,3233668863,US -3233668864,3233669119,AU +3233668864,3233669119,PH 3233669120,3233670399,US 3233670400,3233670655,AU 3233671680,3233676031,US @@ -74535,8 +77657,7 @@ 3233724416,3233725951,US 3233725952,3233726975,NO 3233726976,3233728767,US -3233728768,3233729023,GB -3233729024,3233729279,NL +3233728768,3233729279,GB 3233729280,3233729535,US 3233729536,3233730047,AU 3233730048,3233730559,US @@ -74624,7 +77745,7 @@ 3234008832,3234013695,US 3234013696,3234013951,AU 3234013952,3234014975,US -3234014976,3234015487,AU +3234014976,3234015487,KR 3234015488,3234015743,US 3234015744,3234015999,IE 3234016000,3234016255,GB @@ -74662,7 +77783,7 @@ 3234055680,3234056959,US 3234056960,3234057215,CA 3234057216,3234061055,US -3234061056,3234061311,AU +3234061056,3234061311,NZ 3234061312,3234064639,US 3234064640,3234064895,AU 3234064896,3234065407,US @@ -74752,7 +77873,7 @@ 3234557440,3234564607,US 3234564608,3234566911,KR 3234566912,3234568703,US -3234568704,3234568959,AU +3234568704,3234568959,NZ 3234568960,3234569215,US 3234569216,3234569727,AU 3234569728,3234569983,CL @@ -74781,7 +77902,7 @@ 3234589696,3234590463,US 3234590464,3234590719,CA 3234590720,3234592511,US -3234592512,3234592767,AU +3234592512,3234592767,TH 3234592768,3234726143,US 3234726144,3234726399,CA 3234726400,3234726911,US @@ -74844,7 +77965,7 @@ 3234826752,3234827007,CA 3234827008,3234827519,US 3234827520,3234828031,NL -3234828032,3234828287,AU +3234828032,3234828287,NZ 3234828288,3234828799,US 3234828800,3234829055,CL 3234829056,3234830079,US @@ -74865,7 +77986,7 @@ 3234842368,3234842623,US 3234842624,3234844415,BR 3234844416,3234853375,US -3234853376,3234853631,AU +3234853376,3234853631,TH 3234853632,3234853887,US 3234853888,3234854143,EC 3234854144,3234854911,US @@ -74985,7 +78106,13 @@ 3235970560,3235970815,CA 3235970816,3235971071,US 3235971072,3235971327,CA -3235971328,3236044799,US +3235971328,3235996671,US +3235996672,3235997183,CA +3235997184,3235997695,US +3235997696,3235998207,CA +3235998208,3235998719,US +3235998720,3235999231,CA +3235999232,3236044799,US 3236044800,3236052991,CA 3236052992,3236069375,US 3236069376,3236102143,CA @@ -75003,12 +78130,28 @@ 3236163520,3236163583,IE 3236163584,3236167935,US 3236167936,3236175871,CA -3236175872,3236191487,US -3236191744,3236200447,US +3236175872,3236200447,US 3236200448,3236233215,MY 3236233216,3236239359,US 3236239360,3236241407,CA -3236241408,3236291071,US +3236241408,3236267519,US +3236267520,3236268031,DE +3236268032,3236268543,ES +3236268544,3236272639,US +3236272640,3236272895,HK +3236272896,3236273919,US +3236273920,3236274175,DE +3236274176,3236275199,US +3236275200,3236275711,FR +3236275712,3236276223,AU +3236276224,3236277759,US +3236277760,3236278783,IN +3236278784,3236281855,US +3236281856,3236282367,SG +3236282368,3236287487,US +3236287488,3236287743,EC +3236287744,3236287999,CO +3236288000,3236291071,US 3236291072,3236291327,GB 3236291328,3236302847,US 3236306944,3236312063,US @@ -75016,10 +78159,14 @@ 3236312320,3236312575,GH 3236312576,3236312831,GR 3236312832,3236313087,QA -3236313088,3236365567,US +3236313088,3236314367,US +3236314368,3236314623,GB +3236314624,3236319743,US +3236319744,3236319999,ES +3236320000,3236365567,US 3236365568,3236365823,CA 3236365824,3236368127,US -3236368128,3236368383,AU +3236368128,3236368383,NZ 3236368384,3236372991,US 3236372992,3236373247,AU 3236373248,3236373503,US @@ -75145,7 +78292,11 @@ 3236958208,3236962303,AU 3236962304,3236995623,US 3236995624,3236995631,NL -3236995632,3237038079,US +3236995632,3237003263,US +3237003264,3237003519,GB +3237003520,3237016831,US +3237016832,3237017087,GB +3237017088,3237038079,US 3237038080,3237038335,CA 3237038336,3237043967,US 3237043968,3237044223,CH @@ -75180,7 +78331,7 @@ 3237291264,3237294847,US 3237294848,3237295103,CA 3237295104,3237296639,US -3237296640,3237297151,AU +3237296640,3237297151,SG 3237297152,3237297407,CL 3237297408,3237300479,US 3237302528,3237305087,US @@ -75234,13 +78385,12 @@ 3237478400,3237511167,LK 3237511168,3237548031,US 3237548032,3237552127,KR -3237552128,3237553151,US -3237553152,3237553407,GB -3237553408,3237554431,US +3237552128,3237554431,US 3237554432,3237554434,SG 3237554435,3237554435,US 3237554436,3237554463,SG -3237554464,3237568511,US +3237554464,3237554687,AU +3237554688,3237568511,US 3237568512,3237572607,CA 3237572608,3237576703,US 3237576704,3237609471,CA @@ -75248,7 +78398,11 @@ 3237613568,3237614591,CA 3237614592,3237615615,US 3237615616,3237616895,CA -3237616896,3237647103,US +3237616896,3237634559,US +3237634560,3237634601,GB +3237634602,3237634603,US +3237634604,3237634815,GB +3237634816,3237647103,US 3237647104,3237647359,AU 3237647360,3237653503,US 3237653504,3237653759,IN @@ -75315,7 +78469,9 @@ 3237871488,3237871615,MY 3237871616,3237896191,US 3237896192,3237900287,PR -3237900288,3237957631,US +3237900288,3237955071,US +3237955072,3237955327,NL +3237955328,3237957631,US 3237957632,3237957887,VE 3237957888,3237958143,AG 3237958144,3237958399,PE @@ -75554,7 +78710,7 @@ 3239063040,3239063295,HU 3239063296,3239063551,UA 3239063552,3239075839,DE -3239075840,3239076095,MT +3239075840,3239076095,GB 3239076096,3239076351,DE 3239076352,3239076607,RU 3239076608,3239076863,PL @@ -75619,8 +78775,7 @@ 3239120384,3239120639,PL 3239120896,3239121663,DE 3239121664,3239121919,FR -3239122176,3239122687,DE -3239122944,3239123967,DE +3239121920,3239123967,DE 3239127296,3239127551,PL 3239127552,3239127807,IL 3239127808,3239128063,RU @@ -75880,7 +79035,8 @@ 3239582720,3239582975,GB 3239582976,3239583231,IT 3239583232,3239583487,UA -3239583744,3239585791,DE +3239583744,3239584767,DE +3239585024,3239585279,DE 3239587840,3239591935,DE 3239591936,3239592447,FI 3239592448,3239592703,US @@ -76463,7 +79619,6 @@ 3240309760,3240310783,NO 3240310784,3240311807,GB 3240311808,3240312063,PL -3240312064,3240312319,RU 3240312320,3240312575,IR 3240312576,3240312831,RU 3240312832,3240316927,GB @@ -76906,7 +80061,8 @@ 3241125120,3241125375,IL 3241125376,3241125631,UA 3241125632,3241125887,SE -3241125888,3241129983,CH +3241125888,3241126015,DE +3241126016,3241129983,CH 3241129984,3241130239,FR 3241130240,3241130495,PT 3241130496,3241130751,DK @@ -76965,7 +80121,7 @@ 3241724416,3241724671,RU 3241724672,3241724927,RE 3241725952,3241734143,FR -3241734400,3241735935,FR +3241734400,3241736191,FR 3241738240,3241742335,FR 3241743360,3241743615,DE 3241744384,3241745407,FR @@ -76984,7 +80140,7 @@ 3241779200,3241789439,FR 3241789696,3241789951,FR 3241790464,3241790975,FR -3241793536,3241795327,FR +3241793792,3241795327,FR 3241795584,3241803775,FR 3241803776,3241803823,CY 3241803832,3241803839,GB @@ -77119,9 +80275,7 @@ 3243769856,3243900927,DK 3243900928,3243966463,NO 3243966464,3243974655,PL -3243974656,3243975423,LU -3243975424,3243975679,FR -3243975680,3243978751,LU +3243974656,3243978751,LU 3243978752,3243982847,NL 3243982848,3243991039,HU 3243991040,3243999231,BE @@ -77220,7 +80374,6 @@ 3244828160,3244828415,FI 3244828416,3244828671,FR 3244828672,3244828927,SA -3244828928,3244829183,MD 3244829184,3244829439,CH 3244829440,3244829695,DK 3244829696,3244829951,IL @@ -77266,7 +80419,6 @@ 3244841216,3244841471,GB 3244841472,3244841727,DE 3244841728,3244842239,GB -3244842496,3244842751,RU 3244842752,3244843007,DE 3244843008,3244843263,UA 3244843264,3244843519,RU @@ -77299,7 +80451,7 @@ 3244850688,3244850943,GB 3244850944,3244851455,RU 3244851456,3244851711,NL -3244851712,3244851967,TR +3244851712,3244851967,RU 3244851968,3244852223,GB 3244852224,3244852479,CH 3244852480,3244852735,UA @@ -77499,7 +80651,6 @@ 3244909312,3244909567,IL 3244909568,3244909823,RU 3244909824,3244910079,NL -3244910080,3244910335,CY 3244910336,3244910591,DE 3244910592,3244910847,GB 3244910848,3244911103,DE @@ -77591,7 +80742,6 @@ 3244935680,3244935935,PL 3244935936,3244936191,IL 3244936192,3244937215,AT -3244937216,3244937471,TR 3244937472,3244937727,GB 3244937728,3244937983,UA 3244937984,3244938239,TR @@ -77805,7 +80955,8 @@ 3245127936,3245128191,LV 3245128192,3245128447,IT 3245128448,3245128703,CH -3245128704,3245129471,DK +3245128704,3245129215,LU +3245129216,3245129471,DK 3245129472,3245129983,GB 3245129984,3245130239,DE 3245130240,3245130495,PL @@ -78127,8 +81278,8 @@ 3246370816,3246371073,ES 3246371074,3246371074,PT 3246371075,3246374911,ES +3246375168,3246375423,ES 3246376960,3246377215,ES -3246378752,3246379007,ES 3246379008,3246381055,GB 3246387200,3246388223,GB 3246391296,3246613503,GB @@ -78345,7 +81496,9 @@ 3247751168,3247769599,ES 3247769600,3247771647,DE 3247775744,3247783935,DE -3247783936,3247792127,GB +3247783936,3247788031,US +3247788032,3247790079,NL +3247790080,3247792127,IE 3247792128,3247800319,FR 3247800320,3247816703,DK 3247818752,3247820799,BE @@ -78485,9 +81638,10 @@ 3248557056,3248558079,UA 3248558080,3248575487,NO 3248575488,3248576511,CZ -3248576512,3248586751,NO +3248576512,3248582655,NO +3248584704,3248586751,NO 3248589312,3248589823,NO -3248590848,3248591871,NO +3248590848,3248591615,NO 3248592896,3248599039,NO 3248599040,3248603135,SE 3248603136,3248603391,BG @@ -78823,7 +81977,9 @@ 3249863168,3249863423,BE 3249863424,3249863679,SE 3249863680,3249863935,ES -3249863936,3249865471,SE +3249863936,3249864447,SE +3249864448,3249864703,FR +3249864704,3249865471,SE 3249865472,3249865727,GB 3249865728,3249868031,SE 3249868032,3249868287,DK @@ -79174,7 +82330,6 @@ 3251120640,3251121151,FR 3251121152,3251121663,DK 3251121664,3251122175,PL -3251122176,3251122687,CH 3251122688,3251123199,PL 3251123712,3251124223,RU 3251124736,3251125247,FR @@ -79473,10 +82628,10 @@ 3251318784,3251319807,UA 3251320832,3251321855,PL 3251321856,3251322879,RU -3251322880,3251331071,GB -3251331072,3251331321,FR -3251331322,3251331322,GB -3251331323,3251331583,FR +3251322880,3251331319,GB +3251331320,3251331321,FR +3251331322,3251331327,GB +3251331328,3251331583,FR 3251331584,3251332095,PL 3251332096,3251333119,RU 3251333120,3251333631,CH @@ -79511,15 +82666,7 @@ 3251366912,3251367423,UA 3251367424,3251367935,DE 3251367936,3251372031,GB -3251372032,3251376127,IT -3251376128,3251378175,SI -3251378176,3251406847,IT -3251406848,3251407871,SI -3251407872,3251460095,IT -3251460096,3251462143,SI -3251462144,3251470335,IT -3251470336,3251472383,SI -3251472384,3251634175,IT +3251372032,3251634175,IT 3251634176,3251896319,FI 3251896320,3252166655,NO 3252166656,3252167679,SE @@ -79736,7 +82883,7 @@ 3252637696,3252641791,CH 3252642304,3252642559,UA 3252642560,3252642815,DK -3252642816,3252643071,NL +3252642816,3252643071,AE 3252643072,3252643327,RO 3252643328,3252643583,CH 3252645120,3252645375,CH @@ -79809,7 +82956,6 @@ 3252948992,3252963327,AT 3252965376,3252977663,AT 3252980992,3252981247,GB -3252981248,3252981503,RU 3252981504,3252981759,SE 3252981760,3252982015,DE 3252982272,3252982527,DE @@ -79872,9 +83018,7 @@ 3253403648,3253403903,PL 3253403904,3253409791,SE 3253409792,3253410047,GB -3253410048,3253411327,SE -3253411328,3253411583,NO -3253411584,3253411839,SE +3253410048,3253411839,SE 3253411840,3253412095,US 3253412096,3253412351,SE 3253412352,3253412607,US @@ -80062,21 +83206,19 @@ 3253730304,3253730815,RO 3253730816,3253731327,UA 3253731328,3253731583,DE -3253731584,3253735679,GB -3253735680,3253735935,FR -3253735936,3253736959,GB -3253736960,3253737215,FR -3253737216,3253737823,GB +3253731584,3253737823,GB 3253737824,3253737831,PL 3253737832,3253737839,AT 3253737840,3253737847,GB 3253737848,3253737855,HU -3253737856,3253738559,GB +3253737856,3253738495,GB +3253738496,3253738559,FR 3253738560,3253738567,CZ 3253738568,3253738569,BE 3253738570,3253738570,US 3253738571,3253738575,BE -3253738576,3253741567,GB +3253738576,3253738751,FR +3253738752,3253741567,GB 3253741568,3253741679,SE 3253741680,3253741695,RU 3253741696,3253741816,SE @@ -80100,13 +83242,8 @@ 3253760512,3253760767,FR 3253760768,3253761407,GB 3253761408,3253761471,ES -3253761472,3253761535,GB -3253761536,3253761791,US -3253761792,3253762303,GB -3253762304,3253762559,DE -3253762560,3253762753,IT -3253762754,3253762754,ES -3253762755,3253762815,IT +3253761472,3253762559,GB +3253762560,3253762815,IT 3253762816,3253762943,CH 3253762944,3253763071,GB 3253763072,3253763327,SE @@ -80125,12 +83262,10 @@ 3253767680,3253767711,GB 3253767712,3253767743,DE 3253767744,3253768191,GB -3253768192,3253768447,ES +3253768192,3253768447,SE 3253768448,3253768565,GB 3253768566,3253768566,DE -3253768567,3253768959,GB -3253768960,3253769215,DE -3253769216,3253770983,GB +3253768567,3253770983,GB 3253770984,3253770984,DE 3253770985,3253771199,GB 3253771200,3253771263,IE @@ -80152,7 +83287,11 @@ 3253775808,3253775823,DE 3253775824,3253776159,GB 3253776160,3253776175,DE -3253776176,3253796863,GB +3253776176,3253778231,GB +3253778232,3253778239,FR +3253778240,3253778271,GB +3253778272,3253778287,DE +3253778288,3253796863,GB 3253796864,3253862399,SE 3253862400,3253862655,GB 3253862656,3253882879,FR @@ -80251,9 +83390,7 @@ 3253975040,3253977087,DE 3253977088,3253985279,TR 3253985280,3253993471,GB -3253993472,3254067711,BE -3254067712,3254067967,CZ -3254067968,3254124543,BE +3253993472,3254124543,BE 3254124544,3254255615,CH 3254255616,3254256127,RE 3254256128,3254256639,GP @@ -80303,13 +83440,10 @@ 3254508832,3254509412,FR 3254509413,3254509413,GQ 3254509414,3254607871,FR -3254607872,3254608895,RE -3254608896,3254609151,FR -3254609152,3254610431,RE -3254610432,3254610687,FR -3254610688,3254611455,RE +3254607872,3254611455,RE 3254611456,3254611967,YT -3254611968,3254615551,RE +3254611968,3254612223,FR +3254612224,3254615551,RE 3254615552,3254616063,YT 3254616064,3254648831,FR 3254648832,3254649855,AL @@ -80596,7 +83730,8 @@ 3255148544,3255152639,FR 3255154432,3255155199,FR 3255155712,3255160831,FR -3255166976,3255169023,FR +3255167488,3255167743,FR +3255168512,3255169023,FR 3255172352,3255172607,DE 3255173120,3255173631,GB 3255173648,3255173711,GB @@ -80877,7 +84012,11 @@ 3255822336,3255826431,DE 3255827456,3255828479,DE 3255828480,3256025087,SE -3256025088,3256057855,NO +3256025088,3256043007,NO +3256043008,3256043263,SE +3256043264,3256051455,NO +3256051456,3256051711,SE +3256051712,3256057855,NO 3256057856,3256082431,DK 3256082432,3256090623,LV 3256090624,3256221695,IT @@ -81063,7 +84202,8 @@ 3256864512,3256864767,CH 3256864768,3256866815,DE 3256868096,3256868351,DE -3256868864,3256870911,DE +3256869120,3256869375,DE +3256869632,3256870911,DE 3256870912,3256871167,RU 3256871168,3256871935,DE 3256872448,3256872703,DE @@ -81080,8 +84220,7 @@ 3256899072,3256899583,RU 3256915456,3256915711,RS 3256915712,3256915967,SE -3256918016,3256920063,GB -3256922112,3256934399,GB +3256918016,3256934399,GB 3256942592,3256944639,GB 3256945408,3256945663,GB 3256945664,3256945919,SI @@ -81147,9 +84286,7 @@ 3257093888,3257094143,GB 3257094656,3257095167,GB 3257097472,3257097983,GB -3257106432,3257120767,GB -3257121280,3257121535,GB -3257122304,3257131007,GB +3257106432,3257131007,GB 3257135104,3257137151,GB 3257138176,3257139199,GB 3257139200,3257139455,DK @@ -81214,7 +84351,7 @@ 3257454592,3257455103,IT 3257455104,3257455359,RO 3257455360,3257455615,SI -3257455616,3257461759,CH +3257455616,3257462783,CH 3257464064,3257464319,CH 3257464832,3257465343,CH 3257466880,3257467135,DE @@ -81290,7 +84427,9 @@ 3257742336,3257743359,DE 3257743360,3257748479,NL 3257748480,3257749503,DE -3257749504,3257765887,NL +3257749504,3257753087,NL +3257753088,3257753343,DE +3257753344,3257765887,NL 3257765888,3257767935,DE 3257767936,3257782271,NL 3257782272,3257784319,DE @@ -81474,8 +84613,7 @@ 3258230784,3258232831,NO 3258232832,3258249215,SE 3258249216,3258253311,NO -3258253312,3258253567,DE -3258254080,3258254335,NL +3258253312,3258254335,NL 3258255360,3258265599,NL 3258267648,3258269695,NL 3258271744,3258272767,NL @@ -81575,8 +84713,7 @@ 3258732800,3258733055,CH 3258733056,3258733311,RO 3258733312,3258734079,GB -3258735104,3258735359,GB -3258736640,3258745855,GB +3258734592,3258745855,GB 3258746880,3258762239,GB 3258764032,3258764287,GB 3258764288,3258764543,DE @@ -81623,7 +84760,7 @@ 3258849280,3258859519,GB 3258859520,3258859775,BY 3258859776,3258860031,GB -3258860544,3258900479,GB +3258860544,3258897919,GB 3258902528,3258902783,GB 3258903040,3258903295,FR 3258903296,3258903551,GB @@ -81648,9 +84785,7 @@ 3259226112,3259227391,RU 3259227392,3259227647,KZ 3259227648,3259236351,RU -3259236352,3259236863,SE -3259236864,3259237119,CH -3259237120,3259237887,SE +3259236352,3259237887,SE 3259237888,3259238143,FR 3259238144,3259243007,SE 3259243008,3259243519,AT @@ -81696,7 +84831,9 @@ 3259303424,3259305983,SE 3259305984,3259310079,NL 3259317248,3259318271,CH -3259318272,3259334655,GB +3259318272,3259328190,GB +3259328191,3259328191,US +3259328192,3259334655,GB 3259334656,3259338751,DE 3259338752,3259339263,GB 3259339520,3259342847,GB @@ -81742,10 +84879,7 @@ 3259541504,3259543551,NL 3259543552,3259760639,GB 3259761152,3259767295,DE -3259768064,3259787263,DE -3259787776,3259788287,DE -3259788800,3259789311,DE -3259791872,3259792383,DE +3259768064,3259793407,DE 3259796480,3259800063,DE 3259800576,3259807743,DE 3259808512,3259808767,DE @@ -81773,7 +84907,9 @@ 3259963392,3259964415,PL 3259964416,3259964927,GB 3259964928,3259964959,NL -3259964960,3259965439,GB +3259964960,3259965023,GB +3259965024,3259965031,DE +3259965032,3259965439,GB 3259965440,3259966463,RU 3259967488,3259968511,RS 3259968512,3259969535,RU @@ -81913,8 +85049,7 @@ 3261554176,3261554431,DK 3261554432,3261595647,SE 3261595648,3261599743,NL -3261601792,3261620479,NL -3261620992,3261622271,NL +3261601792,3261622271,NL 3261623808,3261624831,NL 3261626368,3261627903,NL 3261628160,3261643775,NL @@ -81955,10 +85090,9 @@ 3261767680,3261775871,RS 3261775872,3261776383,PL 3261776384,3261777407,RU -3261777408,3261777449,IR +3261777408,3261777449,GB 3261777450,3261777451,NL -3261777452,3261777663,IR -3261777664,3261777919,GB +3261777452,3261777919,GB 3261777920,3261778431,PL 3261778944,3261779455,RO 3261779456,3261779967,DE @@ -82066,7 +85200,7 @@ 3262043648,3262043903,NL 3262043904,3262044159,GB 3262044160,3262044415,RS -3262044416,3262044671,DE +3262044416,3262044671,LU 3262044672,3262044927,GR 3262044928,3262045183,UA 3262045184,3262045439,LT @@ -82127,8 +85261,7 @@ 3262195712,3262196223,DE 3262197760,3262200319,DE 3262200576,3262201087,DE -3262203648,3262203903,DE -3262204928,3262221055,DE +3262201856,3262221311,DE 3262221568,3262221823,DE 3262222080,3262222335,DE 3262223360,3262223871,DE @@ -82141,8 +85274,7 @@ 3262230528,3262235135,DE 3262236672,3262243327,DE 3262243840,3262248191,DE -3262248448,3262248959,DE -3262249472,3262283775,DE +3262248448,3262283775,DE 3262283776,3262284799,RU 3262284800,3262285823,UA 3262286848,3262287871,SE @@ -82193,8 +85325,7 @@ 3262436352,3262436863,SE 3262437888,3262438399,FR 3262438400,3262438911,NL -3262438912,3262439167,DK -3262439168,3262439423,SE +3262438912,3262439423,DK 3262439424,3262439935,AT 3262439936,3262440447,IL 3262440960,3262441471,IL @@ -82337,7 +85468,9 @@ 3262511104,3262511615,GB 3262512128,3262512639,UA 3262512640,3262513151,DE -3262513152,3262578687,AT +3262513152,3262566143,AT +3262566144,3262566399,DE +3262566400,3262578687,AT 3262578688,3262611455,FR 3262611456,3262627839,GB 3262627840,3262636031,IT @@ -82458,9 +85591,7 @@ 3263104031,3263104031,FR 3263104032,3263104040,DE 3263104041,3263104041,GB -3263104042,3263127807,DE -3263128576,3263129599,DE -3263130368,3263130623,DE +3263104042,3263131647,DE 3263133696,3263137791,DE 3263137792,3263138303,PL 3263138304,3263138559,DE @@ -82557,7 +85688,9 @@ 3263692800,3263823871,FI 3263823872,3263826943,DE 3263826944,3263827199,AT -3263827200,3263886079,DE +3263827200,3263833855,DE +3263833856,3263833903,GB +3263833904,3263886079,DE 3263886080,3263886335,SG 3263886336,3263954943,DE 3263954944,3263979519,ES @@ -82679,7 +85812,8 @@ 3264355072,3264355327,FR 3264357632,3264357887,DE 3264359936,3264360191,FR -3264360448,3264369151,FR +3264360448,3264364543,FR +3264365056,3264369151,FR 3264372736,3264373759,FR 3264374784,3264376063,SE 3264376064,3264376319,HR @@ -82782,16 +85916,16 @@ 3264607232,3264607487,IT 3264607488,3264610303,DE 3264610304,3264612479,GB -3264612480,3264612575,FR -3264612576,3264613027,GB +3264612480,3264612607,FR +3264612608,3264613027,GB 3264613028,3264613031,FR 3264613032,3264614911,GB 3264614912,3264615167,SE 3264615168,3264616263,GB 3264616264,3264616271,CH 3264616272,3264616335,GB -3264616336,3264616336,CH -3264616337,3264617983,GB +3264616336,3264616337,CH +3264616338,3264617983,GB 3264617984,3264618239,US 3264618240,3264619391,GB 3264619392,3264619519,BE @@ -82876,8 +86010,7 @@ 3264790528,3264806911,HR 3264806912,3264815103,GB 3264815104,3264825343,SE -3264825856,3264826111,NL -3264826112,3264826367,GB +3264825856,3264826367,GB 3264826880,3264827135,NL 3264827136,3264827391,LV 3264827648,3264828159,GR @@ -82958,7 +86091,7 @@ 3264921600,3264929791,LU 3264929792,3264937983,SK 3264937984,3265003519,GB -3265003520,3265005567,DE +3265004288,3265005567,DE 3265007616,3265009663,DE 3265009664,3265009919,FR 3265009920,3265010175,DE @@ -82977,13 +86110,9 @@ 3265056256,3265056511,DE 3265056768,3265069055,DE 3265069056,3265134591,FI -3265134592,3265134863,CH -3265134864,3265134879,BE -3265134880,3265135017,CH -3265135018,3265135018,BE -3265135019,3265135039,CH -3265135040,3265135071,BE -3265135072,3265137983,CH +3265134592,3265134847,CH +3265134848,3265135103,BE +3265135104,3265137983,CH 3265137984,3265138047,NL 3265138048,3265138599,CH 3265138600,3265138607,NL @@ -82993,9 +86122,9 @@ 3265140000,3265140015,BE 3265140016,3265140119,CH 3265140120,3265140127,BE -3265140128,3265141135,CH -3265141136,3265141151,GB -3265141152,3265141551,CH +3265140128,3265140991,CH +3265140992,3265141247,GB +3265141248,3265141551,CH 3265141552,3265141555,IE 3265141556,3265141759,CH 3265141760,3265142015,GB @@ -83198,7 +86327,7 @@ 3266510848,3266543615,ES 3266543616,3266576383,IT 3266576384,3266577919,DE -3266579456,3266582783,DE +3266579712,3266582783,DE 3266583552,3266584575,DE 3266587648,3266588927,DE 3266589696,3266591743,DE @@ -83218,8 +86347,8 @@ 3266781184,3266789375,PL 3266789376,3266797567,SM 3266797568,3266797823,GB -3266797824,3266798079,ES -3266798080,3266798847,GB +3266797824,3266798207,ES +3266798208,3266798847,GB 3266798848,3266798879,CZ 3266798880,3266804099,GB 3266804100,3266804100,NL @@ -83289,9 +86418,19 @@ 3267095552,3267096575,PL 3267096576,3267097599,DE 3267097600,3267098623,KZ -3267098624,3267099391,GB -3267099392,3267099399,BE -3267099400,3267099647,GB +3267098624,3267098879,GB +3267098880,3267098895,FR +3267098896,3267099007,GB +3267099008,3267099043,FR +3267099044,3267099135,GB +3267099136,3267099263,DE +3267099264,3267099327,NL +3267099328,3267099383,GB +3267099384,3267099387,NL +3267099388,3267099399,BE +3267099400,3267099407,GB +3267099408,3267099415,DE +3267099416,3267099647,GB 3267099648,3267100671,IT 3267100672,3267166207,FI 3267166208,3267231743,GB @@ -83319,7 +86458,7 @@ 3267631096,3267631103,IT 3267631104,3267631615,GB 3267634176,3267635199,GB -3267648320,3267648335,GB +3267648256,3267648511,GB 3267650320,3267650335,AT 3267657576,3267657583,RO 3267657696,3267657703,RO @@ -83389,9 +86528,10 @@ 3268236544,3268236607,GB 3268236672,3268236799,GB 3268237824,3268237855,GB -3268238336,3268238591,GB -3268238632,3268238783,GB -3268238816,3268238847,GB +3268238336,3268238359,GB +3268238368,3268238399,GB +3268238472,3268238543,GB +3268238552,3268238847,GB 3268239584,3268240127,GB 3268240160,3268240191,GB 3268240384,3268240399,GB @@ -83415,7 +86555,10 @@ 3268248512,3268248543,GB 3268249600,3268251311,GB 3268251312,3268251327,IE -3268251328,3268251647,GB +3268251328,3268251583,GB +3268251584,3268251615,DE +3268251616,3268251631,CH +3268251632,3268251647,GB 3268254464,3268254543,GB 3268254624,3268254639,GB 3268254896,3268254903,GB @@ -83517,8 +86660,7 @@ 3268765184,3268765695,RU 3268765696,3268766719,UA 3268766720,3268767231,IL -3268767232,3268767487,UA -3268767488,3268767743,RU +3268767232,3268767743,RU 3268767744,3268768255,NL 3268768256,3268768767,BE 3268768768,3268769279,RU @@ -83701,9 +86843,13 @@ 3270670336,3270672383,RU 3270672384,3270680575,GB 3270680576,3270688767,FR -3270688768,3270836223,IT +3270688768,3270772079,IT +3270772080,3270772087,NL +3270772088,3270836223,IT 3270836224,3270901759,DE -3270901760,3270903807,IT +3270901760,3270902783,IT +3270902784,3270903039,HU +3270903040,3270903807,IT 3270903808,3270905855,SE 3270905856,3270909951,IT 3270911840,3270911871,PL @@ -83800,7 +86946,9 @@ 3271409664,3271417855,BE 3271419904,3271421951,FR 3271426048,3271491583,FR -3271491584,3271557119,DK +3271491584,3271491839,DK +3271491840,3271492095,SE +3271492096,3271557119,DK 3271557120,3271589887,BE 3271589888,3271688191,NO 3271691776,3271692031,US @@ -84332,9 +87480,7 @@ 3273048064,3273056255,IT 3273056256,3273064447,MD 3273064448,3273129983,PT -3273129984,3273132287,DK -3273132288,3273132543,GB -3273132544,3273138175,DK +3273129984,3273138175,DK 3273138176,3273146367,BG 3273146368,3273148415,RU 3273148416,3273150463,LU @@ -84356,9 +87502,7 @@ 3273193472,3273193983,PL 3273194496,3273195007,UA 3273195008,3273195519,RU -3273195520,3273207807,FR -3273207808,3273208063,RE -3273208064,3273261055,FR +3273195520,3273261055,FR 3273261056,3273261567,NO 3273261568,3273262079,BE 3273262080,3273262591,LU @@ -84433,8 +87577,20 @@ 3273337856,3273338111,DE 3273338624,3273338879,DE 3273339136,3273339391,DE -3273339392,3273340415,GB +3273339392,3273339919,GB +3273339920,3273339943,DE +3273339944,3273339955,GB +3273339956,3273339959,DE +3273339960,3273339967,GB +3273339968,3273339983,DE +3273339984,3273340095,GB +3273340096,3273340111,GI +3273340112,3273340127,GB +3273340128,3273340143,DE +3273340144,3273340415,GB 3273340928,3273341711,FR +3273342022,3273342022,GB +3273342034,3273342034,GB 3273342208,3273342231,AE 3273342464,3273342975,DE 3273342976,3273343999,GB @@ -84545,7 +87701,7 @@ 3273436672,3273437183,DE 3273437184,3273437695,RO 3273438208,3273438719,IL -3273438720,3273439231,GB +3273438720,3273439231,UA 3273439232,3273439743,RO 3273439744,3273440255,DE 3273440256,3273440767,RO @@ -84860,7 +88016,8 @@ 3274471680,3274471935,GB 3274472960,3274483711,GB 3274489600,3274489855,GB -3274490176,3274491199,GB +3274490176,3274490895,GB +3274490912,3274491199,GB 3274491208,3274491247,GB 3274491256,3274491295,GB 3274491304,3274491319,GB @@ -84959,7 +88116,9 @@ 3274814464,3274815487,GB 3274815488,3274816511,RU 3274816512,3274817535,SK -3274817536,3274821631,RU +3274817536,3274821119,RU +3274821120,3274821375,UA +3274821376,3274821631,RU 3274821632,3274823679,KZ 3274823680,3274825727,TR 3274825728,3274827775,DE @@ -85026,9 +88185,7 @@ 3275415552,3275423743,UA 3275423744,3275423751,GB 3275423808,3275423839,GB -3275423872,3275424303,GB -3275424320,3275424487,GB -3275424496,3275424719,GB +3275423872,3275424719,GB 3275424728,3275424735,GB 3275424752,3275425311,GB 3275425328,3275425343,GB @@ -85079,7 +88236,14 @@ 3275460288,3275460295,GB 3275460352,3275460607,IE 3275460608,3275460863,HK -3275460864,3275463423,GB +3275460864,3275463183,GB +3275463192,3275463199,GB +3275463216,3275463239,GB +3275463248,3275463263,GB +3275463267,3275463267,GB +3275463269,3275463269,GB +3275463276,3275463276,GB +3275463296,3275463423,GB 3275463456,3275463495,GB 3275463504,3275463523,GB 3275463528,3275463635,GB @@ -85095,10 +88259,8 @@ 3275475720,3275475791,GB 3275475800,3275475879,GB 3275475968,3275476223,GB -3275476288,3275476479,GB -3275476608,3275476631,GB -3275476656,3275476687,GB -3275476704,3275476735,GB +3275476224,3275476479,UA +3275476480,3275476735,GB 3275476920,3275476927,GB 3275476944,3275476959,GB 3275476992,3275477567,GB @@ -85331,7 +88493,9 @@ 3275915008,3275915263,PT 3275915264,3275915775,SA 3275915776,3275916287,SE -3275916288,3275916799,US +3275916288,3275916383,US +3275916384,3275916415,GB +3275916416,3275916799,US 3275916800,3275917311,NL 3275917312,3275918847,UA 3275918848,3275919359,RO @@ -85349,7 +88513,9 @@ 3275928944,3275931647,ME 3275931648,3275939839,UA 3275939840,3275948031,GB -3275948032,3276013567,SE +3275948032,3275970303,SE +3275970304,3275970559,DK +3275970560,3276013567,SE 3276013568,3276014239,GB 3276014240,3276014247,FR 3276014248,3276014335,GB @@ -85358,13 +88524,11 @@ 3276014800,3276014815,FR 3276014816,3276014951,GB 3276014952,3276014959,ES -3276014960,3276020735,GB -3276020736,3276020991,FR -3276020992,3276021503,GB -3276021504,3276021759,FR -3276021760,3276025159,GB +3276014960,3276025159,GB 3276025160,3276025167,FR -3276025168,3276028543,GB +3276025168,3276026367,GB +3276026368,3276026623,FR +3276026624,3276028543,GB 3276028544,3276028671,FR 3276028672,3276029375,GB 3276029376,3276029439,FR @@ -85386,9 +88550,9 @@ 3276042016,3276042031,FR 3276042032,3276042079,GB 3276042080,3276042095,FR -3276042096,3276045247,GB -3276045248,3276045255,FR -3276045256,3276046335,GB +3276042096,3276045055,GB +3276045056,3276045311,FR +3276045312,3276046335,GB 3276046336,3276062719,RU 3276062720,3276063231,PL 3276063232,3276063743,FR @@ -85542,7 +88706,6 @@ 3276490783,3276490783,CH 3276499504,3276499567,DE 3276503040,3276505087,DE -3276508928,3276509183,GB 3276509184,3276510207,IT 3276512256,3276513023,ZA 3276518368,3276518383,NL @@ -85662,8 +88825,8 @@ 3276882688,3276883077,GB 3276883078,3276883078,IT 3276883079,3276883711,GB -3276883712,3276883839,IT -3276883840,3276886363,GB +3276883712,3276883967,IT +3276883968,3276886363,GB 3276886364,3276886367,DE 3276886368,3276886649,GB 3276886650,3276886650,DE @@ -85690,25 +88853,21 @@ 3276902400,3276902655,GB 3276902656,3276902911,SE 3276902912,3276903423,GB -3276903424,3276903487,SE -3276903488,3276903551,GB -3276903552,3276903679,SE +3276903424,3276903679,SE 3276903680,3276907519,GB 3276907520,3276907551,NL 3276907552,3276911167,GB 3276911168,3276911199,IT 3276911200,3276911679,GB 3276911680,3276911711,IT -3276911712,3276912207,GB +3276911712,3276911871,GB +3276911872,3276912127,IT +3276912128,3276912207,GB 3276912208,3276912215,IT 3276912216,3276912287,GB 3276912288,3276912319,IT 3276912320,3276912383,GB -3276912384,3276912639,IT -3276912640,3276912671,GB -3276912672,3276912687,IT -3276912688,3276912879,GB -3276912880,3276912895,IT +3276912384,3276912895,IT 3276912896,3276917231,GB 3276917232,3276917247,FR 3276917248,3276917735,GB @@ -85910,11 +89069,13 @@ 3277395456,3277403135,GB 3277403136,3277403471,FR 3277403472,3277403647,GB -3277403648,3277403903,ES -3277403904,3277404159,GB +3277403648,3277403807,ES +3277403808,3277404159,GB 3277404160,3277404415,DE 3277404416,3277404655,IT -3277404656,3277404671,GB +3277404656,3277404664,GB +3277404665,3277404665,IT +3277404666,3277404671,GB 3277404672,3277404735,CH 3277404736,3277404927,GB 3277404928,3277405183,NL @@ -85979,10 +89140,7 @@ 3277698560,3277699071,DE 3277699584,3277700607,RU 3277700608,3277701119,UA -3277701120,3277701311,SE -3277701312,3277701313,DK -3277701314,3277701375,SE -3277701376,3277701631,DK +3277701120,3277701631,DK 3277701632,3277702143,AT 3277702656,3277703679,DE 3277703680,3277704191,PL @@ -86122,7 +89280,11 @@ 3278241792,3278307327,GB 3278307328,3278372863,IT 3278372864,3278635007,GB -3278635008,3278766079,NL +3278635008,3278716671,NL +3278716672,3278716688,BE +3278716689,3278716689,NL +3278716690,3278716927,BE +3278716928,3278766079,NL 3278767104,3278767615,RO 3278767616,3278768127,UA 3278768128,3278769151,GB @@ -86302,7 +89464,6 @@ 3279054848,3279055359,RU 3279055360,3279055871,SA 3279056896,3279057151,RU -3279057152,3279057407,GB 3279057408,3279057919,FR 3279058944,3279059455,UA 3279059456,3279060479,RU @@ -86312,9 +89473,7 @@ 3279085568,3279089663,NL 3279089664,3279093759,KG 3279093760,3279123455,FR -3279123456,3279123714,RE -3279123715,3279123715,FR -3279123716,3279123967,RE +3279123456,3279123967,RE 3279123968,3279159295,FR 3279159296,3279290367,PL 3279292416,3279294463,NL @@ -86348,7 +89507,9 @@ 3279590400,3279590655,US 3279590656,3279590911,GB 3279590912,3279591167,DE -3279591168,3279593407,GB +3279591168,3279592703,GB +3279592704,3279592959,DE +3279592960,3279593407,GB 3279593408,3279593440,DE 3279593441,3279593599,GB 3279593600,3279593727,DE @@ -86613,9 +89774,7 @@ 3280794624,3280795647,UA 3280795648,3280796671,MZ 3280796672,3280797695,CZ -3280797696,3280816639,CH -3280816640,3280816895,DE -3280816896,3280863231,CH +3280797696,3280863231,CH 3280863232,3280928767,TR 3280928768,3280928831,GB 3280928832,3280928847,RU @@ -86689,7 +89848,9 @@ 3281035264,3281043455,CH 3281043456,3281059839,RU 3281059840,3281125375,DE -3281125376,3281133567,SK +3281125376,3281127167,SK +3281127168,3281127423,CZ +3281127424,3281133567,SK 3281133568,3281141759,IR 3281141760,3281149951,RU 3281149952,3281158143,CZ @@ -86788,9 +89949,7 @@ 3281975296,3281976319,RU 3281976320,3281976831,DE 3281976832,3281977343,RU -3281977344,3282039039,NO -3282039040,3282039295,SE -3282039296,3282042879,NO +3281977344,3282042879,NO 3282042880,3282083839,CH 3282083840,3282084351,DE 3282084352,3282084863,RO @@ -86980,7 +90139,9 @@ 3283263488,3283271679,SE 3283271680,3283279871,RU 3283279872,3283288063,SE -3283288064,3283419135,DE +3283288064,3283304319,DE +3283304320,3283304447,GB +3283304448,3283419135,DE 3283419136,3283484671,DK 3283484672,3283484927,UA 3283484928,3283485183,NL @@ -87122,7 +90283,7 @@ 3283977728,3283978751,RU 3283978752,3283979263,RO 3283979264,3283979775,IL -3283979776,3283980287,NO +3283979776,3283980287,NL 3283980288,3283980799,RO 3283980800,3283981823,CH 3283981824,3283982335,RO @@ -87201,10 +90362,12 @@ 3284025344,3284028139,GB 3284028140,3284028143,US 3284028144,3284028287,GB -3284028288,3284028319,US -3284028320,3284029183,GB -3284029184,3284029199,US -3284029200,3284030471,GB +3284028288,3284028415,US +3284028416,3284029183,GB +3284029184,3284029439,US +3284029440,3284029695,GB +3284029696,3284029951,US +3284029952,3284030471,GB 3284030472,3284030479,IL 3284030480,3284030495,FR 3284030496,3284030615,GB @@ -87429,14 +90592,17 @@ 3284727808,3284728319,RU 3284728320,3284728831,UA 3284728832,3284729343,PT -3284729344,3284729855,FR +3284729344,3284729599,GB +3284729600,3284729855,FR 3284729856,3284795391,RU 3284795392,3284803583,FR 3284803584,3284811775,DE 3284811776,3284819967,KE 3284819968,3284828159,GB 3284828160,3284844543,AT -3284844544,3284860927,CH +3284844544,3284855295,CH +3284855296,3284855551,DE +3284855552,3284860927,CH 3284860928,3284926463,DE 3284926464,3284991999,NO 3284992000,3285057535,PL @@ -87462,8 +90628,7 @@ 3285120512,3285121023,RO 3285121024,3285121535,SE 3285121536,3285122047,CY -3285122048,3285122559,GB -3285122560,3285123071,RU +3285122048,3285123071,RU 3285123072,3285188607,BE 3285188608,3285319679,RU 3285319680,3285320191,HU @@ -87552,6 +90717,7 @@ 3285461184,3285461215,NL 3285461808,3285461839,NL 3285463168,3285463199,LU +3285465600,3285465855,NL 3285472256,3285472271,US 3285472272,3285472287,DE 3285472288,3285472511,US @@ -87669,9 +90835,9 @@ 3285913648,3285913655,IE 3285913656,3285913703,GB 3285913704,3285913711,FI -3285913712,3285913863,GB -3285913872,3285913903,GB +3285913712,3285913903,GB 3285913920,3285913951,GB +3285915904,3285916159,AT 3285917696,3285918207,GB 3285919744,3285921791,QA 3285922048,3285922303,FR @@ -87686,7 +90852,7 @@ 3285924992,3285924995,FR 3285924996,3285924999,CZ 3285925000,3285925007,RU -3285925008,3285925015,DE +3285925008,3285925055,DE 3285925164,3285925171,CH 3285926432,3285926463,CH 3285926592,3285926623,DE @@ -87702,6 +90868,8 @@ 3285939840,3285939967,GB 3285940736,3285940767,IT 3285941248,3285941503,ES +3285943808,3285944063,CH +3285947136,3285947151,NL 3285949604,3285949607,CH 3285949856,3285949887,ES 3285950208,3285950463,IT @@ -87796,15 +90964,9 @@ 3286384640,3286401023,DE 3286401024,3286403071,GB 3286403072,3286403327,GG -3286403328,3286404863,GB -3286404864,3286405119,GG -3286405120,3286406655,GB -3286406656,3286406911,GG -3286406912,3286407167,GB +3286403328,3286407167,GB 3286407168,3286407423,GG -3286407424,3286407679,GB -3286407680,3286407935,GG -3286407936,3286409215,GB +3286407424,3286409215,GB 3286409216,3286417407,DE 3286417408,3286417663,UA 3286417664,3286417919,IT @@ -87855,7 +91017,6 @@ 3286638592,3286646783,AT 3286646784,3286654975,RU 3286654976,3286655231,UA -3286655232,3286655487,KZ 3286655488,3286655743,LT 3286655744,3286655999,RU 3286656000,3286656255,CH @@ -87954,7 +91115,9 @@ 3286926592,3286926847,DE 3286926848,3286927103,PT 3286927104,3286927359,FI -3286927360,3286927615,DE +3286927360,3286927437,DE +3286927438,3286927439,GB +3286927440,3286927615,DE 3286927616,3286927871,SI 3286927872,3286928127,BG 3286928128,3286928383,DE @@ -88550,6 +91713,7 @@ 3288782848,3288783359,NG 3288783360,3288784127,KE 3288784128,3288785407,ZA +3288785408,3288785663,UG 3288787968,3288788223,EG 3288788224,3288792831,ZA 3288792832,3288793087,AO @@ -88623,9 +91787,7 @@ 3289137152,3289153535,BM 3289153536,3289156607,MU 3289156608,3289158655,RW -3289158656,3289159935,MU -3289159936,3289160191,RW -3289160192,3289161727,MU +3289158656,3289161727,MU 3289161728,3289163263,PR 3289163264,3289163519,US 3289163520,3289169919,PR @@ -88726,9 +91888,7 @@ 3290172160,3290172415,KE 3290172416,3290181631,ZA 3290181632,3290181887,US -3290181888,3290182911,PR -3290182912,3290183167,US -3290183168,3290183423,PR +3290181888,3290183423,PR 3290183424,3290183679,US 3290183680,3290184959,PR 3290184960,3290185215,US @@ -88764,12 +91924,13 @@ 3290480640,3290482687,AO 3290482688,3290484735,CF 3290484736,3290486783,ZA +3290486784,3290488831,MA 3290488832,3290489343,NG 3290489344,3290489855,KE 3290489856,3290490367,EG 3290490368,3290492927,ZA 3290492928,3290494975,TZ -3290497024,3290718975,ZA +3290494976,3290718975,ZA 3290718976,3290719231,SZ 3290719232,3290955775,ZA 3290955776,3290980351,CR @@ -88782,7 +91943,7 @@ 3291004928,3291021311,NG 3291021312,3291029503,ZA 3291029504,3291037695,TZ -3291037952,3291038207,ZA +3291037696,3291038207,ZA 3291045888,3291078655,ZA 3291078656,3291086847,DZ 3291086848,3291103231,PR @@ -88944,11 +92105,20 @@ 3291549696,3291549951,LR 3291549952,3291550207,GA 3291611136,3291611647,ZA -3291742208,3292004351,US +3291742208,3291742463,US +3291742464,3291742591,GB +3291742592,3291742719,IE +3291742720,3291750399,US +3291750400,3291750655,GB +3291750656,3292004351,US 3292004352,3292266495,SC 3292397568,3292463103,US 3292463104,3292528639,ZA +3292528640,3294625791,MA +3294625792,3295674367,KE +3295674368,3296722943,MA 3296722944,3298820095,EG +3299344384,3299606527,TG 3299606528,3299868671,GH 3299868672,3300130815,TN 3300130816,3300392959,CI @@ -89029,6 +92199,7 @@ 3301513216,3301515263,EG 3301515264,3301523455,GH 3301523456,3301531647,CI +3301531648,3301539839,ZA 3301539840,3301544191,KE 3301544192,3301544959,DE 3301544960,3301548031,KE @@ -89036,8 +92207,8 @@ 3301556224,3301557759,DJ 3301557760,3301558015,US 3301558016,3301560319,DJ -3301560320,3301565695,KE -3301565696,3301566463,MU +3301560320,3301565439,KE +3301565440,3301566463,MU 3301568512,3301570559,EG 3301570560,3301572607,KE 3301572608,3301605375,EG @@ -89083,7 +92254,6 @@ 3302532096,3302533119,NA 3302533120,3302533631,MU 3302533632,3302533887,ZA -3302533888,3302534143,MU 3302534144,3302535167,ZA 3302535168,3302536191,UG 3302536192,3302537215,GH @@ -89105,6 +92275,8 @@ 3302545920,3302546431,TZ 3302546432,3302546943,SL 3302546944,3302547455,KE +3302547456,3302547967,ZW +3302547968,3302548479,CI 3302548480,3302548991,GH 3302548992,3302549503,ZA 3302549504,3302550015,KE @@ -89183,7 +92355,10 @@ 3304062976,3304456191,SC 3304456192,3304521727,NG 3304521728,3304587263,SC -3304587264,3304718335,ZA +3304587264,3304669183,ZA +3304669184,3304685567,TZ +3304685568,3304701951,ZA +3304701952,3304718335,AO 3304849408,3305111551,ZA 3305111552,3307208703,TN 3307208704,3309305855,EG @@ -89230,8 +92405,11 @@ 3315138560,3315204095,MA 3315204096,3315269631,ET 3315269632,3315286015,ZA -3315286016,3315287807,MU -3315287808,3315288319,KE +3315286016,3315286271,KE +3315286272,3315287551,MU +3315287552,3315287807,KE +3315287808,3315288063,MU +3315288064,3315288319,KE 3315288320,3315288413,MU 3315288414,3315288414,KE 3315288415,3315289343,MU @@ -89466,65 +92644,68 @@ 3322691840,3322692095,SE 3322692096,3322698383,US 3322698384,3322698391,CA -3322698392,3322773759,US -3322773760,3322774783,CA -3322774784,3322775039,US -3322775040,3322776575,CA +3322698392,3322773503,US +3322773504,3322773759,CA +3322773760,3322774271,US +3322774272,3322774527,CA +3322774528,3322775039,US +3322775040,3322775295,CA +3322775296,3322776063,US +3322776064,3322776575,CA 3322776576,3322776831,US -3322776832,3322777599,CA -3322777600,3322777855,US -3322777856,3322778367,CA -3322778368,3322778623,US -3322778624,3322779903,CA -3322779904,3322780159,US -3322780160,3322780415,CA -3322780416,3322780671,US -3322780672,3322781695,CA -3322781696,3322782207,US -3322782208,3322782975,CA -3322782976,3322783231,US -3322783232,3322785791,CA -3322785792,3322786047,US -3322786048,3322787839,CA -3322787840,3322788095,US -3322788096,3322788351,CA -3322788352,3322788607,US -3322788608,3322789375,CA -3322789376,3322789631,US -3322789632,3322791167,CA -3322791168,3322791423,US -3322791424,3322791679,CA +3322776832,3322777343,CA +3322777344,3322777855,US +3322777856,3322780159,CA +3322780160,3322780671,US +3322780672,3322780927,CA +3322780928,3322781183,US +3322781184,3322781951,CA +3322781952,3322782463,US +3322782464,3322782719,CA +3322782720,3322782975,US +3322782976,3322785535,CA +3322785536,3322786047,US +3322786048,3322787583,CA +3322787584,3322788351,US +3322788352,3322789887,CA +3322789888,3322790143,US +3322790144,3322790655,CA +3322790656,3322790911,US +3322790912,3322791679,CA 3322791680,3322792191,US -3322792192,3322792703,CA -3322792704,3322793215,US +3322792192,3322792959,CA +3322792960,3322793215,US 3322793216,3322793471,CA -3322793472,3322793983,US -3322793984,3322795007,CA -3322795008,3322795263,US +3322793472,3322793727,US +3322793728,3322794495,CA +3322794496,3322795263,US 3322795264,3322796031,CA 3322796032,3322796287,US 3322796288,3322796543,CA -3322796544,3322796799,US -3322796800,3322799871,CA -3322799872,3322800127,US -3322800128,3322800895,CA -3322800896,3322801151,US +3322796544,3322797055,US +3322797056,3322798591,CA +3322798592,3322798847,US +3322798848,3322799615,CA +3322799616,3322800127,US +3322800128,3322800639,CA +3322800640,3322801151,US 3322801152,3322801663,CA -3322801664,3322802431,US -3322802432,3322802943,CA +3322801664,3322801919,US +3322801920,3322802943,CA 3322802944,3322803199,US -3322803200,3322803711,CA -3322803712,3322803967,US -3322803968,3322804479,CA +3322803200,3322804479,CA 3322804480,3322804735,US -3322804736,3322805247,CA -3322805248,3322805503,US -3322805504,3322806015,CA -3322806016,3322875903,US +3322804736,3322805503,CA +3322805504,3322805759,US +3322805760,3322806271,CA +3322806272,3322875903,US 3322880000,3322888191,AU 3322888192,3322945535,US 3322945536,3322951679,CN -3322951680,3322970111,US +3322951680,3322953727,US +3322953728,3322961663,NL +3322961664,3322969343,US +3322969344,3322970111,NL 3322970112,3323002879,CA 3323002880,3323003135,US 3323003392,3323004671,US @@ -89772,7 +92953,8 @@ 3325067264,3325100287,CA 3325100288,3325100543,US 3325101056,3325108223,US -3325110272,3325128703,US +3325110272,3325122303,US +3325123072,3325128703,US 3325128704,3325129215,TH 3325129216,3325131775,US 3325131776,3325132031,AU @@ -89844,7 +93026,9 @@ 3325224672,3325224675,US 3325224676,3325225671,CA 3325225672,3325225675,US -3325225676,3325226592,CA +3325225676,3325225739,CA +3325225740,3325225740,US +3325225741,3325226592,CA 3325226593,3325226593,US 3325226594,3325226751,CA 3325226752,3325227007,US @@ -89884,11 +93068,8 @@ 3325284864,3325285119,AU 3325285376,3325296383,US 3325296384,3325296639,CA -3325296640,3325303807,US -3325303808,3325304575,AS -3325304576,3325304703,US -3325304704,3325304767,AS -3325304768,3325304831,US +3325296640,3325304319,US +3325304320,3325304831,AS 3325304832,3325307647,CA 3325307648,3325307903,BB 3325307904,3325313023,CA @@ -89954,7 +93135,8 @@ 3325551616,3325552639,CA 3325552640,3325562879,US 3325565440,3325573119,US -3325573120,3325575167,BB +3325573120,3325574143,VG +3325574144,3325575167,BB 3325575168,3325630975,US 3325630976,3325631487,CA 3325631488,3325640703,US @@ -90222,7 +93404,35 @@ 3331194880,3331260415,AU 3331260416,3331269375,US 3331269376,3331269631,AU -3331269632,3331356671,US +3331269632,3331269632,IL +3331269633,3331270399,US +3331270400,3331270400,SG +3331270401,3331270655,US +3331270656,3331270656,IL +3331270657,3331271167,US +3331271168,3331271168,JP +3331271169,3331271423,US +3331271424,3331271679,FR +3331271680,3331271680,JP +3331271681,3331271935,US +3331271936,3331271936,ES +3331271937,3331272959,US +3331272960,3331272960,IT +3331272961,3331273471,US +3331273472,3331273727,IL +3331273728,3331273983,AU +3331273984,3331273984,HK +3331273985,3331274239,US +3331274240,3331274240,SE +3331274241,3331274495,US +3331274496,3331274496,PL +3331274497,3331274751,US +3331274752,3331274752,BR +3331274753,3331275263,US +3331275264,3331275264,CH +3331275265,3331275775,US +3331275776,3331275776,CA +3331275777,3331356671,US 3331356672,3331357183,BZ 3331357184,3331362815,US 3331362816,3331366911,CA @@ -90374,14 +93584,15 @@ 3333018112,3333023231,CA 3333023232,3333025279,US 3333025280,3333029631,CA -3333029632,3333385983,US +3333029632,3333374975,US +3333374976,3333375231,IN +3333375232,3333385983,US 3333385984,3333386239,JP 3333386240,3333396223,US 3333396224,3333396479,JP -3333396480,3333396689,GB -3333396690,3333396691,US -3333396692,3333396735,GB -3333396736,3333427967,US +3333396480,3333396673,US +3333396674,3333396674,DE +3333396675,3333427967,US 3333427968,3333428007,GB 3333428008,3333428008,US 3333428009,3333428223,GB @@ -90481,9 +93692,9 @@ 3335475200,3335475455,DE 3335475456,3335524351,US 3335524352,3335524607,AU -3335524608,3335527167,US -3335527168,3335527423,DE -3335527424,3335573759,US +3335524608,3335546879,US +3335546880,3335547135,KR +3335547136,3335573759,US 3335573760,3335574015,IN 3335574016,3335747071,US 3335747072,3335749631,NL @@ -90544,7 +93755,11 @@ 3337650176,3337650431,GB 3337650432,3337650943,US 3337650944,3337651199,HK -3337651200,3337682943,CH +3337651200,3337651455,CH +3337651456,3337651711,SG +3337651712,3337654783,CH +3337654784,3337655039,AU +3337655040,3337682943,CH 3337682944,3337882111,US 3337882112,3337882623,AU 3337882624,3337892607,US @@ -90769,7 +93984,9 @@ 3339679744,3339707391,US 3339707392,3339708415,BM 3339708416,3339728895,US -3339728896,3339729919,AG +3339728896,3339729407,AG +3339729408,3339729663,DM +3339729664,3339729919,AG 3339729920,3339743231,US 3339743232,3339744255,CA 3339744256,3339747327,US @@ -90799,7 +94016,9 @@ 3339965440,3339968511,CA 3339968512,3339975935,US 3339975936,3339976191,CA -3339976192,3340080127,US +3339976192,3339991807,US +3339991808,3339992063,CA +3339992064,3340080127,US 3340080128,3340081151,CA 3340081152,3340084223,US 3340084224,3340085247,KN @@ -90822,9 +94041,7 @@ 3340429824,3340430079,PA 3340430080,3340431871,US 3340432384,3340460031,US -3340460032,3340461055,PR -3340461056,3340461311,US -3340461312,3340462079,PR +3340460032,3340462079,PR 3340462080,3340481535,US 3340481536,3340482559,CA 3340482560,3340490751,US @@ -90832,7 +94049,6 @@ 3340492800,3340584703,US 3340584704,3340584959,KW 3340584960,3340660735,US -3340660992,3340661247,US 3340661760,3340664831,US 3340664832,3340665855,CA 3340668928,3340677119,US @@ -90846,7 +94062,7 @@ 3340852736,3340853247,CA 3340853248,3340857343,US 3340857344,3340858367,CA -3340858368,3340888063,US +3340858368,3340887551,US 3340888576,3340923391,US 3340923904,3340925567,US 3340925568,3340925575,DE @@ -90952,7 +94168,9 @@ 3341863936,3341864959,AG 3341864960,3341867007,US 3341867008,3341869055,CA -3341869056,3341881087,US +3341869056,3341870079,US +3341870080,3341870335,CN +3341870336,3341881087,US 3341881088,3341881343,SG 3341881344,3341891071,US 3341891072,3341891327,AU @@ -91001,15 +94219,11 @@ 3342657792,3342663423,CA 3342663424,3342831103,US 3342831104,3342831359,IN -3342831360,3342879487,US -3342879488,3342879743,GB -3342879744,3343013887,US +3342831360,3343013887,US 3343013888,3343015935,CA 3343015936,3343055871,US 3343055872,3343056895,CA -3343056896,3343090588,US -3343090589,3343090589,MX -3343090590,3343129087,US +3343056896,3343129087,US 3343129600,3343136255,US 3343136768,3343153151,US 3343153152,3343154943,CA @@ -91045,7 +94259,9 @@ 3343649792,3343650815,VI 3343650816,3343653631,US 3343653632,3343653695,CA -3343653696,3343858687,US +3343653696,3343654079,US +3343654080,3343654111,CA +3343654112,3343858687,US 3343858688,3343859199,VG 3343859200,3344116223,US 3344116224,3344116735,CA @@ -91113,11 +94329,15 @@ 3344656384,3344658431,US 3344658432,3344660479,CA 3344660480,3344670719,US -3344670720,3344671743,GP +3344670720,3344671231,GP +3344671232,3344671487,MQ +3344671488,3344671743,GP 3344671744,3344676863,US 3344676864,3344677247,CA 3344677248,3344677263,US -3344677264,3344677407,CA +3344677264,3344677279,CA +3344677280,3344677295,US +3344677296,3344677407,CA 3344677408,3344677423,US 3344677424,3344678911,CA 3344678912,3344681983,US @@ -91162,8 +94382,8 @@ 3345332640,3345332655,US 3345332656,3345332663,RO 3345332664,3345333247,US -3345333248,3345333503,GP -3345333504,3345334271,MF +3345333248,3345333759,GP +3345333760,3345334271,MF 3345334272,3345339391,US 3345339392,3345340415,CA 3345340416,3345369087,US @@ -91385,9 +94605,7 @@ 3350628352,3350642687,US 3350642688,3350643711,TC 3350643712,3350645759,US -3350645760,3350645887,CA -3350645888,3350646015,RU -3350646016,3350646783,CA +3350645760,3350646783,CA 3350646784,3350648831,US 3350648832,3350650623,CA 3350650624,3350650631,US @@ -91398,10 +94616,12 @@ 3350814976,3350815231,US 3350815232,3350823423,CA 3350823424,3350823935,US -3350823936,3350834687,CA +3350823936,3350825727,CA +3350825728,3350825983,GB +3350825984,3350834687,CA 3350834688,3350835199,US -3350835200,3350836735,CA -3350836736,3350836991,US +3350835200,3350836223,CA +3350836224,3350836991,US 3350836992,3350837247,CA 3350837248,3350837759,US 3350837760,3350843391,CA @@ -91577,7 +94797,9 @@ 3351484416,3351486463,US 3351486464,3351488511,CA 3351488512,3351494911,US -3351494912,3351495679,SG +3351494912,3351495195,SG +3351495196,3351495196,US +3351495197,3351495679,SG 3351495680,3351495935,US 3351495936,3351495989,SG 3351495990,3351495990,US @@ -91600,7 +94822,9 @@ 3351699200,3351699455,CA 3351699456,3351706367,US 3351706368,3351706623,CA -3351706624,3351860223,US +3351706624,3351855615,US +3351855616,3351855871,GB +3351855872,3351860223,US 3351860224,3351861247,KY 3351861248,3351869439,US 3351869440,3351871487,CA @@ -91653,7 +94877,9 @@ 3353335336,3353335337,NL 3353335338,3353653503,US 3353653504,3353653759,GB -3353653760,3353714431,US +3353653760,3353688063,US +3353688064,3353688575,GB +3353688576,3353714431,US 3353714432,3353714687,BE 3353714688,3353722367,US 3353722368,3353722623,GB @@ -91667,9 +94893,7 @@ 3353732608,3353732863,DE 3353732864,3353736191,US 3353736192,3353736447,PR -3353736448,3353736703,US -3353736704,3353736959,PR -3353736960,3353737215,US +3353736448,3353737215,US 3353737216,3353737471,GB 3353737472,3353780223,US 3353780224,3353780479,GB @@ -91732,14 +94956,13 @@ 3354972416,3355012607,US 3355012608,3355017215,CA 3355017216,3355052287,US -3355052288,3355053311,CA +3355052288,3355052543,AU +3355052544,3355053311,CA 3355053312,3355249151,US 3355249152,3355249663,CA 3355249664,3355260927,US 3355260928,3355262719,CA -3355262720,3355308287,US -3355308288,3355308543,GB -3355308544,3355310591,US +3355262720,3355310591,US 3355310592,3355311103,CA 3355311104,3355319295,US 3355319296,3355320319,CA @@ -92133,11 +95356,14 @@ 3356157952,3356158207,CL 3356158208,3356158463,MX 3356158464,3356158719,CL -3356158976,3356159999,CL +3356158976,3356159743,CL +3356159744,3356159999,BR 3356160000,3356160255,MX 3356160256,3356160511,GT 3356160512,3356160767,CL -3356160768,3356162559,MX +3356160768,3356161279,MX +3356161280,3356161535,BR +3356161536,3356162559,MX 3356162560,3356162815,PE 3356162816,3356163583,CL 3356163584,3356163839,VE @@ -92813,7 +96039,8 @@ 3360116736,3360118783,BO 3360118784,3360120831,AR 3360120832,3360124927,CO -3360124928,3360125951,VE +3360124928,3360125183,US +3360125184,3360125951,VE 3360125952,3360127999,BR 3360128000,3360128319,HN 3360128320,3360128327,IT @@ -93422,8 +96649,7 @@ 3382677504,3382681599,BR 3382681600,3382683647,MX 3382683648,3382685695,CL -3382685696,3382686655,MX -3382686656,3382686719,US +3382685696,3382686719,MX 3382686720,3382689791,BR 3382689792,3382695935,MX 3382695936,3382696959,AR @@ -93610,7 +96836,7 @@ 3389035776,3389036031,SG 3389036032,3389036287,AU 3389036288,3389036543,NZ -3389037056,3389037567,AU +3389036800,3389037567,AU 3389037568,3389038591,NC 3389038592,3389044735,HK 3389044736,3389046783,AU @@ -93675,7 +96901,8 @@ 3389222912,3389223935,US 3389223936,3389226239,IN 3389226240,3389226495,AU -3389226496,3389227007,IN +3389226496,3389226751,SG +3389226752,3389227007,IN 3389227008,3389227519,CN 3389227520,3389228031,PK 3389228032,3389228799,AU @@ -93703,6 +96930,7 @@ 3389302016,3389302527,AU 3389302528,3389302783,PK 3389302784,3389303039,VN +3389303040,3389303295,IN 3389303296,3389303807,ID 3389303808,3389304063,IN 3389304064,3389304319,BD @@ -93717,7 +96945,9 @@ 3389306624,3389306879,AU 3389306880,3389307135,SG 3389307136,3389307647,ID +3389307648,3389307903,IN 3389307904,3389308159,AU +3389308160,3389308415,ID 3389308416,3389308671,AU 3389308672,3389308927,PH 3389308928,3389317119,HK @@ -93751,7 +96981,9 @@ 3389407744,3389408255,CN 3389408256,3389409279,JP 3389409280,3389409791,CN -3389409792,3389412351,AU +3389409792,3389411327,AU +3389411328,3389411583,IN +3389411584,3389412351,AU 3389412352,3389412607,NZ 3389412608,3389412863,PH 3389412864,3389413119,AU @@ -94088,7 +97320,9 @@ 3390414336,3390414847,SG 3390414848,3390418943,JP 3390418944,3390423039,MV -3390423040,3390439423,SG +3390423040,3390429439,SG +3390429440,3390429951,HK +3390429952,3390439423,SG 3390439424,3390441471,NZ 3390441472,3390443519,TH 3390443520,3390447359,NZ @@ -94112,9 +97346,12 @@ 3390770432,3390770687,AU 3390770944,3390771199,AU 3390771200,3390775295,SG -3390775296,3390801919,NZ +3390775296,3390790399,NZ +3390790400,3390790655,AU +3390790656,3390801919,NZ 3390801920,3390802431,CN -3390802432,3390832639,NZ +3390802432,3390825727,NZ +3390826496,3390832639,NZ 3390832640,3390963711,TH 3390963712,3391094783,KR 3391094784,3391356927,JP @@ -94126,7 +97363,9 @@ 3391444480,3391444991,VN 3391444992,3391453183,NZ 3391453184,3391453439,ID -3391453440,3391487999,NZ +3391453440,3391469055,NZ +3391469056,3391469311,AU +3391469312,3391487999,NZ 3391488000,3391489023,CN 3391489024,3391490047,NP 3391490048,3391492095,CN @@ -94188,7 +97427,9 @@ 3391717888,3391718399,CN 3391718400,3391718911,IN 3391718912,3391719423,JP -3391719424,3391721471,NZ +3391719424,3391720959,NZ +3391720960,3391721215,CN +3391721216,3391721471,NZ 3391721472,3391721983,AU 3391721984,3391722239,TW 3391722240,3391722495,PH @@ -94202,11 +97443,48 @@ 3391737856,3391741951,JP 3391741952,3391746047,IN 3391746048,3391750143,CN -3391750144,3391766783,SG -3391766784,3391767039,JP -3391767040,3391810047,SG +3391750144,3391752475,JP +3391752476,3391752479,SG +3391752480,3391753407,JP +3391753408,3391753471,SG +3391753472,3391758335,JP +3391758336,3391765503,SG +3391765504,3391767295,JP +3391767296,3391768319,SG +3391768320,3391774719,JP +3391774720,3391776767,SG +3391776768,3391782911,JP +3391782912,3391784959,SG +3391784960,3391785119,JP +3391785120,3391785151,SG +3391785152,3391786112,JP +3391786113,3391786113,SG +3391786114,3391786239,JP +3391786240,3391791615,SG +3391791616,3391792383,JP +3391792384,3391792895,SG +3391792896,3391793663,JP +3391793664,3391795455,SG +3391795456,3391795927,JP +3391795928,3391795935,SG +3391795936,3391796335,JP +3391796336,3391796343,SG +3391796344,3391796735,JP +3391796736,3391796991,SG +3391796992,3391798783,JP +3391798784,3391804415,SG +3391804416,3391805183,JP +3391805184,3391805439,SG +3391805440,3391806207,JP +3391806208,3391806975,SG +3391806976,3391807475,JP +3391807476,3391807479,SG +3391807480,3391807999,JP +3391808000,3391810047,SG 3391810048,3391810303,JP -3391810304,3391815679,SG +3391810304,3391813887,SG +3391813888,3391815423,JP +3391815424,3391815679,SG 3391815680,3391817727,AU 3391817728,3391819775,TO 3391819776,3391823871,JP @@ -94279,6 +97557,7 @@ 3391947776,3391948287,HK 3391948288,3391948799,IN 3391948800,3391949311,HK +3391949312,3391949823,IN 3391949824,3391950079,JP 3391950080,3391950335,AU 3391950336,3391950591,HK @@ -94435,6 +97714,7 @@ 3392487424,3392499711,IN 3392499712,3392503807,JP 3392503808,3392505343,HK +3392505344,3392505855,IN 3392506880,3392507903,HK 3392507904,3392508927,KH 3392508928,3392510975,HK @@ -94600,7 +97880,6 @@ 3393021440,3393021695,IN 3393021696,3393021951,HK 3393021952,3393022463,ID -3393022464,3393022975,SG 3393022976,3393023231,PH 3393023232,3393023487,AU 3393023488,3393023743,SG @@ -94611,8 +97890,9 @@ 3393025280,3393025535,IN 3393025536,3393025791,PH 3393025792,3393026047,AU +3393026048,3393026559,IN 3393026560,3393026815,AU -3393027072,3393028095,ID +3393027072,3393027839,ID 3393028096,3393060863,AU 3393060864,3393062911,FJ 3393062912,3393069055,ID @@ -94831,7 +98111,9 @@ 3394035712,3394039807,MY 3394039808,3394040575,SG 3394040576,3394040831,IN -3394040832,3394041855,SG +3394040832,3394041087,SG +3394041088,3394041343,MY +3394041344,3394041855,SG 3394041856,3394042879,AU 3394042880,3394043903,CN 3394043904,3394060287,HK @@ -94903,9 +98185,7 @@ 3394351104,3394355199,CN 3394355200,3394359295,IN 3394359296,3394363391,AU -3394363392,3394375839,HK -3394375840,3394375847,CN -3394375848,3394441215,HK +3394363392,3394441215,HK 3394441216,3394453503,IN 3394453504,3394461695,AU 3394461696,3394465791,SG @@ -94924,6 +98204,7 @@ 3394502656,3394503679,HK 3394503680,3394507263,CN 3394507264,3394507775,JP +3394507776,3394508287,AU 3394508544,3394508799,PH 3394508800,3394510847,CN 3394510848,3394514943,BD @@ -95067,7 +98348,6 @@ 3394963456,3394965503,ID 3394965504,3394967551,TH 3394967552,3394969599,ID -3394969600,3394973695,SG 3394973696,3394977791,JP 3394977792,3394985983,IN 3394985984,3394990079,CN @@ -95131,10 +98411,11 @@ 3395180032,3395180287,JP 3395180288,3395180543,HK 3395180544,3395181055,VN +3395181056,3395181567,TH 3395181568,3395182591,CN 3395182592,3395190783,SG 3395190784,3395198975,JP -3395198976,3395203071,MY +3395200768,3395201023,MY 3395203072,3395215359,JP 3395215360,3395219455,HK 3395219456,3395223551,TH @@ -95166,6 +98447,7 @@ 3397026304,3397026815,TH 3397026816,3397027071,CN 3397027072,3397027327,PH +3397027328,3397027839,IN 3397027840,3397029887,JP 3397029888,3397033983,MY 3397033984,3397038079,ID @@ -95175,12 +98457,9 @@ 3397070848,3397074943,PH 3397074944,3397083135,HK 3397083136,3397087231,CN -3397087232,3397088255,JP 3397088256,3397090303,CN 3397090304,3397091327,TW -3397091328,3397093375,GU -3397093376,3397093631,MP -3397093632,3397095679,GU +3397091328,3397095679,GU 3397095680,3397095935,MP 3397095936,3397099519,GU 3397099520,3397103615,HK @@ -95224,8 +98503,7 @@ 3397213184,3397213439,IN 3397213440,3397213695,AU 3397213696,3397214207,ID -3397214208,3397214719,BD -3397214720,3397215231,AU +3397214208,3397215231,AU 3397215232,3397215743,ID 3397215744,3397216255,PH 3397216256,3397216767,AU @@ -95259,7 +98537,9 @@ 3397323776,3397328895,CN 3397328896,3397330943,ID 3397330944,3397337087,CN -3397337088,3397338375,HK +3397337088,3397338039,HK +3397338040,3397338043,SG +3397338044,3397338375,HK 3397338376,3397338379,JP 3397338380,3397339647,HK 3397339648,3397339687,SG @@ -95306,8 +98586,7 @@ 3397500928,3397501951,BD 3397501952,3397503999,IN 3397504000,3397505023,TH -3397505280,3397505535,IN -3397506048,3397506559,IN +3397505024,3397506559,IN 3397506560,3397506815,AU 3397506816,3397507071,IN 3397507072,3397507583,ID @@ -95372,8 +98651,8 @@ 3397779456,3397781503,ID 3397781504,3397783551,BD 3397783552,3397785599,VN -3397785600,3397787391,TO -3397787392,3397791743,AU +3397785600,3397787647,TO +3397787648,3397791743,AU 3397791744,3397791999,NZ 3397792000,3397792767,AU 3397792768,3397793023,IN @@ -95388,15 +98667,15 @@ 3397816320,3397832703,IN 3397832704,3397836799,CN 3397836800,3397844991,AU -3397844992,3397854719,JP -3397854720,3397854975,NZ -3397854976,3397869823,JP +3397844992,3397869823,JP 3397869824,3397870079,AU 3397870080,3397887999,JP 3397888000,3397889023,IN 3397889024,3397906111,JP 3397906112,3397906175,IN -3397906176,3397910527,JP +3397906176,3397908735,JP +3397908736,3397908991,AU +3397908992,3397910527,JP 3397910528,3397918719,SG 3397918720,3397922815,AU 3397922816,3397926911,CN @@ -95517,9 +98796,9 @@ 3398640672,3398640695,SG 3398640696,3398642431,JP 3398642432,3398642687,AU -3398642688,3398646783,JP -3398646784,3398647039,AU -3398647040,3398647807,JP +3398642688,3398643679,JP +3398643680,3398643695,NZ +3398643696,3398647807,JP 3398647808,3398655999,IN 3398656000,3398668287,AU 3398668288,3398672383,CN @@ -95585,6 +98864,7 @@ 3399012352,3399016447,JP 3399016448,3399024639,ID 3399024640,3399025663,CN +3399025664,3399026175,TW 3399026176,3399026431,SG 3399026688,3399028735,HK 3399028736,3399032831,ID @@ -95744,9 +99024,10 @@ 3399983746,3399991295,US 3399991296,3399995391,IN 3399995392,3399999487,KR -3399999488,3400000255,SG -3400000256,3400000511,AU -3400000512,3400002303,SG +3399999488,3400000475,SG +3400000476,3400000479,US +3400000480,3400000487,AU +3400000488,3400002303,SG 3400002304,3400002367,HK 3400002368,3400004607,SG 3400004608,3400004863,AU @@ -95863,8 +99144,8 @@ 3400433664,3400435711,HK 3400435712,3400435967,BD 3400435968,3400441855,HK -3400441856,3400446079,NZ -3400446080,3400446207,AU +3400441856,3400445951,NZ +3400445952,3400446207,AU 3400446208,3400450047,NZ 3400450048,3400458239,JP 3400458240,3400466431,AU @@ -95889,8 +99170,8 @@ 3400609792,3400630271,JP 3400630272,3400646655,IN 3400646656,3400646911,HK -3400646912,3400647679,SG -3400647680,3400648191,AU +3400646912,3400647935,SG +3400647936,3400648191,AU 3400648192,3400648677,SG 3400648678,3400648678,HK 3400648679,3400648815,SG @@ -95899,8 +99180,8 @@ 3400650144,3400650159,HK 3400650160,3400650409,SG 3400650410,3400650410,AU -3400650411,3400650751,SG -3400650752,3400654847,AU +3400650411,3400650495,SG +3400650496,3400654847,AU 3400654848,3400663039,IN 3400663040,3400683519,MY 3400683520,3400691711,JP @@ -96391,7 +99672,9 @@ 3406649344,3406649855,CN 3406649856,3406650367,AU 3406650368,3406651391,CN -3406651392,3406669823,AU +3406651392,3406664191,AU +3406664192,3406664447,IN +3406664448,3406669823,AU 3406669824,3406670847,IN 3406670848,3406671103,AU 3406671104,3406671359,CN @@ -96483,14 +99766,17 @@ 3406835968,3406836735,CN 3406836736,3406838271,AU 3406838272,3406838527,CN -3406838528,3406857471,AU +3406838528,3406839551,AU +3406839808,3406857471,AU 3406857472,3406857727,CN 3406857728,3406864639,AU 3406864640,3406865151,CN 3406865152,3406865663,AU 3406865664,3406865919,IN 3406865920,3406869503,AU -3406869504,3406870527,JP +3406869504,3406870015,JP +3406870016,3406870271,AU +3406870272,3406870527,JP 3406870528,3406871039,AU 3406871040,3406871551,CN 3406871552,3406881791,AU @@ -96743,7 +100029,8 @@ 3407240192,3407241215,CN 3407241216,3407241983,AU 3407241984,3407242239,CN -3407242240,3407243775,AU +3407242240,3407243263,AU +3407243264,3407243775,HK 3407243776,3407244031,CN 3407244032,3407244287,AU 3407244800,3407247871,AU @@ -96772,7 +100059,8 @@ 3407282176,3407282431,CN 3407282688,3407294207,AU 3407294208,3407294463,CN -3407294464,3407297791,AU +3407294464,3407295487,AU +3407295744,3407297791,AU 3407297792,3407298559,CN 3407298560,3407300863,AU 3407300864,3407301119,CN @@ -96817,7 +100105,8 @@ 3407352320,3407352575,CN 3407352576,3407354623,AU 3407354624,3407354879,CN -3407354880,3407358719,AU +3407354880,3407357439,AU +3407357696,3407358719,AU 3407358720,3407358975,CN 3407358976,3407360511,AU 3407360512,3407361023,ID @@ -96845,8 +100134,8 @@ 3407377664,3407378943,AU 3407378944,3407379455,CN 3407379456,3407382015,AU -3407382016,3407382271,JP -3407382272,3407384831,AU +3407382016,3407382527,JP +3407382528,3407384831,AU 3407384832,3407385087,CN 3407385088,3407386623,AU 3407386624,3407387135,CN @@ -96921,8 +100210,8 @@ 3407473408,3407473919,CN 3407473920,3407475199,AU 3407475200,3407475455,CN -3407475456,3407480831,AU -3407480832,3407481223,JP +3407475456,3407481087,AU +3407481088,3407481223,JP 3407481224,3407481231,AU 3407481232,3407481599,JP 3407481600,3407481855,AU @@ -96969,7 +100258,9 @@ 3407523328,3407523583,AU 3407523584,3407523839,JP 3407523840,3407524095,CN -3407524096,3407526143,AU +3407524096,3407524607,AU +3407524608,3407524863,NZ +3407524864,3407526143,AU 3407526144,3407526399,CN 3407526400,3407530495,AU 3407530496,3407531007,CN @@ -97027,7 +100318,9 @@ 3407595520,3407595775,CN 3407595776,3407596031,AU 3407596032,3407596287,CN -3407596288,3407603967,AU +3407596288,3407602943,AU +3407602944,3407603199,JP +3407603200,3407603967,AU 3407603968,3407604223,CN 3407604224,3407604479,AU 3407604480,3407604735,IN @@ -97035,7 +100328,9 @@ 3407606016,3407606271,CN 3407606272,3407608319,AU 3407608320,3407608575,CN -3407608576,3407612415,AU +3407608576,3407608715,AU +3407608716,3407608736,JP +3407608737,3407612415,AU 3407612416,3407612671,CN 3407612672,3407612927,AU 3407612928,3407613183,CN @@ -97155,7 +100450,7 @@ 3407748608,3407750655,AU 3407750656,3407751167,SG 3407751168,3407753215,AU -3407753216,3407753727,SG +3407753216,3407753727,HK 3407753728,3407757823,AU 3407757824,3407758079,CN 3407758080,3407761663,AU @@ -97168,7 +100463,8 @@ 3407771904,3407772159,CN 3407772160,3407772415,AU 3407772416,3407772671,CN -3407772672,3407779839,AU +3407772672,3407773439,AU +3407773696,3407779839,AU 3407779840,3407780095,CN 3407780096,3407780863,AU 3407780864,3407781119,CN @@ -97220,7 +100516,9 @@ 3407826944,3407827199,CN 3407827200,3407828223,AU 3407828224,3407828479,CN -3407828480,3407831295,AU +3407828480,3407828991,AU +3407828992,3407829503,US +3407829504,3407831295,AU 3407831296,3407831551,CN 3407831552,3407833343,AU 3407833344,3407833855,CN @@ -97253,7 +100551,7 @@ 3407864320,3407865087,AU 3407865088,3407865343,CN 3407865344,3407866367,AU -3407866368,3407866623,GB +3407866368,3407866623,SG 3407866624,3407869951,AU 3407869952,3407870463,CN 3407870464,3407871231,AU @@ -97294,7 +100592,7 @@ 3407910912,3407911167,CN 3407911168,3407919615,AU 3407919616,3407920127,CN -3407920128,3407921151,AU +3407920384,3407921151,AU 3407921152,3407921407,CN 3407921408,3407922175,AU 3407922176,3407922431,CN @@ -97418,7 +100716,8 @@ 3408055296,3408056319,CN 3408056320,3408062463,AU 3408062464,3408062719,CN -3408062720,3408064511,AU +3408062720,3408063999,AU +3408064256,3408064511,AU 3408064512,3408064767,CN 3408065024,3408065279,CN 3408065280,3408065791,AU @@ -97438,7 +100737,7 @@ 3409387008,3409387263,CN 3409387264,3409396479,AU 3409396480,3409396735,PH -3409396736,3409403135,AU +3409396992,3409403135,AU 3409403136,3409403391,CN 3409403392,3409405183,AU 3409405184,3409405439,CN @@ -97452,7 +100751,9 @@ 3409412096,3409412607,CN 3409412608,3409416703,AU 3409416704,3409417215,CN -3409417216,3409420287,AU +3409417216,3409418495,AU +3409418496,3409418751,PL +3409418752,3409420287,AU 3409420288,3409420543,IN 3409420544,3409423615,AU 3409423616,3409423871,IN @@ -97491,8 +100792,8 @@ 3409466880,3409467135,AU 3409467136,3409467391,HK 3409467392,3409467903,AU -3409467904,3409468415,HK -3409468416,3409469183,AU +3409467904,3409468159,HK +3409468160,3409469183,AU 3409469184,3409469439,CN 3409469440,3409473023,AU 3409473024,3409473279,CN @@ -97763,7 +101064,7 @@ 3411278848,3411296255,HK 3411296256,3411312639,AU 3411312640,3411313151,HK -3411313152,3411313663,TW +3411313152,3411313663,SG 3411313664,3411313919,AU 3411313920,3411314175,HK 3411314176,3411314687,NZ @@ -97894,6 +101195,7 @@ 3412296192,3412296703,ID 3412296704,3412297727,NZ 3412297728,3412298751,MY +3412298752,3412299263,TH 3412299264,3412299519,AU 3412299520,3412299775,HK 3412299776,3412302847,AU @@ -97990,7 +101292,9 @@ 3413251072,3413262335,JP 3413262336,3413263359,PH 3413263360,3413264383,IN -3413264384,3413265407,SG +3413264384,3413264639,SG +3413264640,3413264895,AU +3413264896,3413265407,SG 3413265408,3413266431,AU 3413266432,3413270527,CN 3413270528,3413278719,TH @@ -98008,7 +101312,9 @@ 3413327872,3413344255,IN 3413344256,3413360639,PH 3413360640,3413377023,MY -3413377024,3413524479,SG +3413377024,3413405055,SG +3413405056,3413405183,HK +3413405184,3413524479,SG 3413524480,3413540863,TH 3413540864,3413557247,NZ 3413557248,3413565439,CN @@ -98062,16 +101368,79 @@ 3413602560,3413604351,CN 3413604352,3413606399,HK 3413606400,3413639167,CN -3413639168,3413704703,SG +3413639168,3413639423,SG +3413639424,3413640959,JP +3413640960,3413644287,SG +3413644288,3413645311,JP +3413645312,3413646079,SG +3413646080,3413647871,JP +3413647872,3413648383,SG +3413648384,3413649359,JP +3413649360,3413649375,SG +3413649376,3413649407,JP +3413649408,3413650687,SG +3413650688,3413652735,JP +3413652736,3413653247,SG +3413653248,3413654015,JP +3413654016,3413654271,SG +3413654272,3413655039,JP +3413655040,3413655295,SG +3413655296,3413656831,JP +3413656832,3413657599,SG +3413657600,3413658879,JP +3413658880,3413659135,SG +3413659136,3413659903,JP +3413659904,3413660159,SG +3413660160,3413661183,JP +3413661184,3413661439,SG +3413661440,3413662719,JP +3413662720,3413662975,SG +3413662976,3413665023,JP +3413665024,3413665791,SG +3413665792,3413665919,JP +3413665920,3413665951,SG +3413665952,3413666463,JP +3413666464,3413666495,SG +3413666496,3413667327,JP +3413667328,3413676543,SG +3413676544,3413677311,JP +3413677312,3413678591,SG +3413678592,3413679359,JP +3413679360,3413680127,SG +3413680128,3413680311,JP +3413680312,3413680315,SG +3413680316,3413681407,JP +3413681408,3413686271,SG +3413686272,3413686335,JP +3413686336,3413686368,SG +3413686369,3413686687,JP +3413686688,3413686719,SG +3413686720,3413687039,JP +3413687040,3413688575,SG +3413688576,3413689343,JP +3413689344,3413696511,SG +3413696512,3413697535,JP +3413697536,3413704703,SG 3413704704,3413737471,MY 3413737472,3413741567,SG -3413741568,3413742591,TH +3413741568,3413741823,JP +3413741824,3413742079,SG +3413742080,3413742591,JP 3413742592,3413744127,SG -3413744128,3413748479,TH +3413744128,3413745407,TH +3413745408,3413747455,SG +3413747456,3413747711,JP +3413747712,3413748223,SG +3413748224,3413748479,JP 3413748480,3413749503,SG -3413749504,3413750271,TH +3413749504,3413750271,JP 3413750272,3413751039,SG -3413751040,3413753087,TH +3413751040,3413751295,JP +3413751296,3413751551,SG +3413751552,3413752063,JP +3413752064,3413752575,SG +3413752576,3413752831,JP +3413752832,3413753087,SG 3413753088,3413753855,JP 3413753856,3413762047,AU 3413762048,3413770239,TW @@ -98080,6 +101449,7 @@ 3413835776,3413843967,SG 3413843968,3413848063,IN 3413848064,3413850111,SG +3413850112,3413850623,ID 3413850880,3413851135,AU 3413851136,3413852159,ID 3413852160,3413868543,AU @@ -98152,7 +101522,7 @@ 3414605824,3414616063,IN 3414616064,3414618111,ID 3414618112,3414620159,CN -3414620672,3414621183,IN +3414620160,3414621183,IN 3414621184,3414638591,PK 3414638592,3414646783,TW 3414646784,3414654975,CN @@ -98167,7 +101537,12 @@ 3415080960,3415082239,MY 3415082240,3415083007,SG 3415083008,3415083519,AU -3415083520,3415088127,SG +3415083520,3415084031,SG +3415084032,3415084543,CN +3415084544,3415085055,US +3415085056,3415087615,SG +3415087616,3415087871,US +3415087872,3415088127,SG 3415088128,3415089151,HK 3415089152,3415097343,MY 3415097344,3415103487,ID @@ -98188,9 +101563,7 @@ 3415195648,3415199743,NZ 3415199744,3415220223,AU 3415220224,3415224319,NZ -3415224320,3415224831,US -3415224832,3415225087,AU -3415225088,3415228415,US +3415224320,3415228415,US 3415228416,3415236607,KH 3415236608,3415244799,CN 3415244800,3415277567,TH @@ -98227,17 +101600,34 @@ 3415572480,3415605247,SG 3415605248,3415736319,TH 3415736320,3415737599,SG -3415737600,3415737855,TH +3415737600,3415737855,JP 3415737856,3415738879,SG -3415738880,3415739135,TH +3415738880,3415739135,JP 3415739136,3415740159,SG -3415740160,3415740415,TH +3415740160,3415740415,JP 3415740416,3415741695,SG -3415741696,3415747071,TH +3415741696,3415741951,JP +3415741952,3415742207,SG +3415742208,3415742463,JP +3415742464,3415746047,SG +3415746048,3415746303,JP +3415746304,3415746815,SG +3415746816,3415747071,JP 3415747072,3415747839,SG -3415747840,3415748351,TH +3415747840,3415748351,JP 3415748352,3415749375,SG -3415749376,3415752703,TH +3415749376,3415749759,JP +3415749760,3415749791,TH +3415749792,3415749823,JP +3415749824,3415749839,TH +3415749840,3415749887,JP +3415749888,3415750143,SG +3415750144,3415750399,JP +3415750400,3415751423,SG +3415751424,3415751679,JP +3415751680,3415751935,TH +3415751936,3415752191,JP +3415752192,3415752703,SG 3415752704,3415760895,CN 3415760896,3415769087,NZ 3415769088,3415777279,CN @@ -98262,7 +101652,7 @@ 3415838720,3415842815,KR 3415842816,3415851007,TH 3415851008,3415855103,AU -3415855616,3415856127,IN +3415855104,3415856127,IN 3415856128,3415858175,ID 3415858176,3415859199,LK 3415859200,3415867391,AU @@ -98302,13 +101692,16 @@ 3416327168,3416328191,HK 3416328192,3416330239,AU 3416330240,3416334335,ID -3416334336,3416342527,SG +3416334336,3416339455,SG +3416339456,3416339711,IN +3416339712,3416342527,SG 3416342528,3416371199,AU 3416371200,3416371711,PH 3416371712,3416371967,VN 3416372224,3416372479,CN 3416372480,3416372735,SG 3416372736,3416372991,AU +3416373248,3416373759,ID 3416373760,3416374271,AU 3416374272,3416374527,PH 3416374528,3416374783,IN @@ -98331,9 +101724,7 @@ 3416522752,3416588287,AU 3416588288,3416653823,JP 3416653824,3416667135,AU -3416667136,3416667647,US -3416667648,3416667903,AU -3416667904,3416668159,US +3416667136,3416668159,US 3416668160,3416686591,AU 3416686592,3416694783,SG 3416694784,3416702975,CN @@ -98405,7 +101796,7 @@ 3416930816,3416931327,CN 3416931328,3416932351,IN 3416932352,3416936447,PK -3416936448,3416938495,AU +3416936448,3416939007,AU 3416939008,3416939519,HK 3416939520,3416940543,AU 3416940544,3416948735,KR @@ -98580,7 +101971,9 @@ 3418282240,3418282495,AU 3418282496,3418283519,PH 3418283520,3418284031,AU -3418284032,3418286079,SG +3418284032,3418285567,SG +3418285568,3418285823,JP +3418285824,3418286079,SG 3418286080,3418287103,AU 3418287104,3418288127,SG 3418288128,3418290175,ID @@ -98595,7 +101988,9 @@ 3418294272,3418296319,VN 3418296320,3418297343,HK 3418297344,3418298367,CN -3418298368,3418299391,HK +3418298368,3418298879,HK +3418298880,3418299135,CN +3418299136,3418299391,HK 3418299392,3418300415,CN 3418300416,3418300927,BD 3418300928,3418301439,IN @@ -98616,15 +102011,13 @@ 3418374144,3418382335,AU 3418382336,3418391039,JP 3418391040,3418391295,AU -3418391296,3418392575,JP -3418392576,3418392831,AU -3418392832,3418393919,JP +3418391296,3418393919,JP 3418393920,3418393927,AU 3418393928,3418394367,JP 3418394368,3418394623,TW -3418394624,3418397695,JP -3418397696,3418397951,HK -3418397952,3418399231,JP +3418394624,3418397183,JP +3418397184,3418397439,MY +3418397440,3418399231,JP 3418399232,3418399247,PH 3418399248,3418400255,JP 3418400256,3418400511,AU @@ -98668,8 +102061,8 @@ 3418643200,3418643455,JP 3418643456,3418644479,AU 3418644480,3418644735,JP -3418644736,3418644863,AU -3418644864,3418650807,JP +3418644736,3418644991,AU +3418644992,3418650807,JP 3418650808,3418650808,HK 3418650809,3418650823,JP 3418650824,3418650839,HK @@ -98702,9 +102095,9 @@ 3419078656,3419209727,TW 3419209728,3419226111,VN 3419226112,3419234303,CN -3419234304,3419239423,JP -3419239424,3419239935,US -3419239936,3419242495,JP +3419234304,3419241727,JP +3419241728,3419242239,US +3419242240,3419242495,JP 3419242496,3419275263,CN 3419275264,3419340799,AU 3419340800,3419344895,TW @@ -98858,8 +102251,8 @@ 3420437504,3420438527,IN 3420438528,3420454911,HK 3420454912,3422552063,KR -3422552064,3422850559,US -3422850560,3422851071,GB +3422552064,3422850815,US +3422850816,3422851071,GB 3422851072,3422955519,US 3422955520,3422956799,FR 3422956800,3423076351,US @@ -98986,9 +102379,7 @@ 3425173504,3425304575,CA 3425304576,3425471487,US 3425471488,3425472511,CA -3425472512,3425484543,US -3425484544,3425484799,GU -3425484800,3425697791,US +3425472512,3425697791,US 3425697792,3425699839,CA 3425699840,3425714175,US 3425714176,3425722367,CA @@ -99026,7 +102417,9 @@ 3426729472,3426729983,CA 3426729984,3426744319,US 3426744320,3426746367,CA -3426746368,3427109887,US +3426746368,3427082239,US +3427082240,3427082495,DE +3427082496,3427109887,US 3427110400,3427112447,US 3427112448,3427112703,CN 3427112704,3427117055,US @@ -99434,7 +102827,9 @@ 3432134144,3432205311,US 3432205312,3432206335,CA 3432206336,3432265983,US -3432265984,3432267263,DE +3432265984,3432266239,DE +3432266240,3432266751,US +3432266752,3432267263,DE 3432267264,3432280063,US 3432280064,3432280319,GB 3432280320,3432324607,US @@ -99517,7 +102912,9 @@ 3435271680,3435507711,US 3435507712,3435511807,CA 3435511808,3436249343,US -3436249344,3436255743,CA +3436249344,3436252415,CA +3436252416,3436253183,US +3436253184,3436255743,CA 3436255744,3436256255,US 3436256256,3436278271,CA 3436278272,3436278527,US @@ -99722,7 +103119,9 @@ 3448987648,3448989695,IN 3448989696,3448990719,HK 3448990720,3448991743,IN -3448991744,3449098751,US +3448991744,3449098239,US +3449098240,3449098495,GB +3449098496,3449098751,US 3449098752,3449099263,DE 3449099264,3449100799,US 3449100800,3449101311,AU @@ -99777,7 +103176,9 @@ 3449189376,3449189887,US 3449189888,3449190655,CA 3449190656,3449190911,US -3449190912,3449191679,CA +3449190912,3449191167,CA +3449191168,3449191423,US +3449191424,3449191679,CA 3449191680,3449192447,US 3449192448,3449195775,CA 3449195776,3449196031,US @@ -99821,9 +103222,9 @@ 3449594112,3449599999,US 3449600000,3449600255,CA 3449600256,3449638911,US -3449638912,3449639186,GB -3449639187,3449639187,NL -3449639188,3449639679,GB +3449638912,3449639167,GB +3449639168,3449639423,US +3449639424,3449639679,GB 3449639680,3449639935,US 3449639936,3449640191,GB 3449640192,3449640447,NL @@ -99891,7 +103292,9 @@ 3450974336,3450974463,GB 3450974464,3450986495,US 3450986496,3450986751,HK -3450986752,3451170303,US +3450986752,3450987007,US +3450987008,3450987263,CN +3450987264,3451170303,US 3451170304,3451170559,VE 3451170560,3451187967,US 3451187968,3451188223,AU @@ -100197,7 +103600,11 @@ 3453408256,3453409023,BB 3453409024,3453409535,KN 3453409536,3453411327,BB -3453411328,3453552127,US +3453411328,3453419519,US +3453419520,3453427711,MO +3453427712,3453551844,US +3453551845,3453551845,GB +3453551846,3453552127,US 3453552128,3453552383,GB 3453552384,3453552639,US 3453552640,3453552895,GB @@ -100506,7 +103913,11 @@ 3459295232,3459296255,KR 3459296256,3459310591,US 3459310592,3459310847,KY -3459310848,3459312639,US +3459310848,3459311103,US +3459311104,3459311142,KY +3459311143,3459311143,US +3459311144,3459311615,KY +3459311616,3459312639,US 3459312640,3459312671,MX 3459312672,3459312767,US 3459312768,3459312895,MX @@ -100614,7 +104025,7 @@ 3459618001,3459620863,CA 3459620864,3459624959,US 3459624960,3459629055,BM -3459629056,3459631359,US +3459629056,3459631615,US 3459633152,3459686399,US 3459686400,3459688479,NL 3459688480,3459689215,US @@ -100972,16 +104383,12 @@ 3464388608,3464391935,US 3464391936,3464392191,CA 3464392192,3464394751,US -3464394752,3464395007,LC -3464395008,3464395775,VC -3464395776,3464396031,LC -3464396032,3464396799,VC +3464394752,3464396799,VC 3464396800,3464421631,US 3464421632,3464421887,CA 3464421888,3464426495,US 3464426496,3464426751,GD -3464426752,3464428543,US -3464428800,3464429311,US +3464426752,3464429311,US 3464429312,3464429567,CA 3464429568,3464548351,US 3464548352,3464548607,AG @@ -101024,7 +104431,9 @@ 3464782080,3464782335,GB 3464782336,3464785151,US 3464785152,3464785407,AR -3464785408,3464802303,US +3464785408,3464789327,US +3464789328,3464789343,CA +3464789344,3464802303,US 3464802304,3464806399,CA 3464806400,3465154559,US 3465154560,3465158655,BS @@ -101056,8 +104465,8 @@ 3466072432,3466072439,CA 3466072440,3466072775,US 3466072776,3466072783,CA -3466072784,3466072831,US -3466072832,3466073087,CA +3466072784,3466073055,US +3466073056,3466073087,CA 3466073088,3466158079,US 3466158080,3466166271,PA 3466166272,3466290687,US @@ -101098,7 +104507,9 @@ 3466938808,3466938811,GB 3466938812,3466958079,US 3466958080,3466958335,CA -3466958336,3467051007,US +3466958336,3466965503,US +3466965504,3466965759,NL +3466965760,3467051007,US 3467051008,3467068927,CA 3467068928,3467069439,US 3467069440,3467116543,CA @@ -101221,7 +104632,53 @@ 3468619008,3468619263,CA 3468619264,3468623871,US 3468623872,3468656639,CA -3468656640,3469055743,US +3468656640,3468682399,US +3468682400,3468682415,HK +3468682416,3468682495,SG +3468682496,3468682559,HK +3468682560,3468682575,US +3468682576,3468682591,HK +3468682592,3468682623,SG +3468682624,3468682735,HK +3468682736,3468682751,US +3468682752,3468682911,HK +3468682912,3468682927,US +3468682928,3468683007,HK +3468683008,3468683023,US +3468683024,3468683103,HK +3468683104,3468685311,US +3468685312,3468685343,NL +3468685344,3468685663,IE +3468685664,3468686015,NL +3468686016,3468687839,US +3468687840,3468687855,NL +3468687856,3468687919,US +3468687920,3468687935,NL +3468687936,3468688255,US +3468688256,3468688271,IE +3468688272,3468688303,NL +3468688304,3468688335,IE +3468688336,3468688367,NL +3468688368,3468688399,IE +3468688400,3468688431,NL +3468688432,3468688463,IE +3468688464,3468688495,NL +3468688496,3468688527,IE +3468688528,3468688559,NL +3468688560,3468688591,IE +3468688592,3468688623,NL +3468688624,3468688655,IE +3468688656,3468688687,NL +3468688688,3468688719,IE +3468688720,3468688751,NL +3468688752,3468688783,IE +3468688784,3468688815,NL +3468688816,3468688847,IE +3468688848,3468688879,NL +3468688880,3468688911,IE +3468688912,3468688943,NL +3468688944,3468688959,IE +3468688960,3469055743,US 3469055744,3469055999,CA 3469056000,3469070335,US 3469070336,3469070591,CA @@ -101379,19 +104836,50 @@ 3475885952,3475885983,CA 3475885984,3475897471,US 3475897472,3475897503,FR -3475897504,3475910847,US -3475910848,3475910879,SG -3475910880,3475912703,US -3475912704,3475912959,SG -3475912960,3475915327,US -3475915328,3475915359,JP -3475915360,3475916543,US -3475916544,3475916799,HK -3475916800,3475918287,US -3475918288,3475918303,HK -3475918304,3475931135,US +3475897504,3475910655,US +3475910656,3475911167,SG +3475911168,3475911423,US +3475911424,3475911519,SG +3475911520,3475911551,HK +3475911552,3475914751,SG +3475914752,3475914879,US +3475914880,3475914895,JP +3475914896,3475915455,US +3475915456,3475915487,JP +3475915488,3475915647,US +3475915648,3475915679,JP +3475915680,3475915743,HK +3475915744,3475915775,JP +3475915776,3475916031,US +3475916032,3475916047,HK +3475916048,3475916287,US +3475916288,3475916863,HK +3475916864,3475917055,US +3475917056,3475917183,JP +3475917184,3475917231,US +3475917232,3475917311,JP +3475917312,3475917791,US +3475917792,3475917823,JP +3475917824,3475918207,US +3475918208,3475918271,JP +3475918272,3475918287,US +3475918288,3475918319,HK +3475918320,3475920639,US +3475920640,3475920895,HK +3475920896,3475921167,US +3475921168,3475921183,HK +3475921184,3475922735,US +3475922736,3475922751,HK +3475922752,3475931135,US 3475931136,3475939327,HK -3475939328,3475996671,US +3475939328,3475952767,US +3475952768,3475952895,JP +3475952896,3475953663,US +3475953664,3475953919,IE +3475953920,3475954175,SG +3475954176,3475955711,US +3475955712,3475959807,SG +3475959808,3475996671,US 3475996672,3476029439,CA 3476029440,3476111359,US 3476111360,3476111871,CA @@ -101401,9 +104889,7 @@ 3476447232,3476455423,CA 3476455424,3476881407,US 3476881408,3476946943,CA -3476946944,3477854719,US -3477854720,3477854975,CA -3477854976,3478114303,US +3476946944,3478114303,US 3478114304,3478118399,PE 3478118400,3478192127,US 3478192128,3478257663,CA @@ -101562,15 +105048,19 @@ 3481665536,3481731071,CA 3481731072,3481812991,US 3481812992,3481829375,CA -3481829376,3481934591,US -3481934592,3481934847,CH -3481934848,3481958271,US +3481829376,3481843455,US +3481843456,3481843711,GB +3481843712,3481951977,US +3481951978,3481951978,DE +3481951979,3481958271,US 3481958272,3481958399,NL 3481958400,3481959020,US 3481959021,3481959022,GB 3481959023,3481964575,US 3481964576,3481964579,IE -3481964580,3481993791,US +3481964580,3481966591,US +3481966592,3481966847,CH +3481966848,3481993791,US 3481993792,3481993799,CA 3481993800,3481994239,US 3481994240,3481994751,CA @@ -101710,9 +105200,7 @@ 3484327424,3484327935,CA 3484327936,3484438527,US 3484438528,3484438783,ZM -3484438784,3484439039,US -3484439040,3484439295,GB -3484439296,3484439551,US +3484438784,3484439551,US 3484439552,3484439807,ZM 3484439808,3484450815,US 3484450816,3484451839,CA @@ -101795,13 +105283,15 @@ 3485229056,3485270015,US 3485278208,3485317119,US 3485317120,3485318143,IN -3485318144,3485327359,US +3485318144,3485319167,US +3485319168,3485323263,SE +3485323264,3485327359,US 3485327360,3485335551,CA 3485335552,3485442047,US 3485446144,3485462527,US -3485462528,3485465343,VC -3485465344,3485465599,LC -3485465600,3485466623,VC +3485462528,3485465855,VC +3485465856,3485466111,LC +3485466112,3485466623,VC 3485466624,3485597695,US 3485597696,3485695999,CA 3485696000,3485959423,US @@ -102016,8 +105506,7 @@ 3487039488,3487105023,CA 3487105024,3487172095,US 3487172096,3487172351,MX -3487172352,3487188991,US -3487188992,3487189247,GB +3487172352,3487189247,US 3487189248,3487189503,DK 3487189504,3487197183,US 3487197184,3487197439,DK @@ -102027,8 +105516,8 @@ 3487236096,3487301631,CA 3487301632,3487706367,US 3487706368,3487706623,RU -3487706624,3487731199,US -3487731200,3487731455,CN +3487706624,3487730943,US +3487730944,3487731455,CN 3487731456,3487766527,US 3487766528,3487768575,CA 3487768576,3487842303,US @@ -102093,6 +105582,7 @@ 3489399040,3489464319,US 3489464320,3489529855,CA 3489529856,3489562623,US +3489562880,3489563135,US 3489566720,3489575935,US 3489575936,3489576959,CN 3489576960,3489577215,US @@ -102155,19 +105645,21 @@ 3492807160,3492812759,US 3492812760,3492812763,JP 3492812764,3492845823,US -3492845824,3492846079,CH +3492845824,3492846079,FR 3492846080,3492864767,US 3492864768,3492865023,CA -3492865024,3492867327,US +3492865024,3492865279,US +3492865280,3492865535,GB +3492865536,3492867327,US 3492867328,3492867583,GB 3492867584,3492877954,US 3492877955,3492877955,CA 3492877956,3492893951,US 3492893952,3492893969,GB 3492893970,3492893971,US -3492893972,3492893983,GB -3492893984,3492894015,US -3492894016,3492894207,GB +3492893972,3492893985,GB +3492893986,3492893986,US +3492893987,3492894207,GB 3492894208,3492897023,US 3492897024,3492897279,GB 3492897280,3492912127,US @@ -102184,19 +105676,19 @@ 3492957696,3492958207,VI 3492958208,3492960255,US 3492960256,3492960511,ES -3492960512,3492968191,US -3492968192,3492968447,GB +3492960512,3492968319,US +3492968320,3492968447,GB 3492968448,3492969471,US 3492969472,3492969727,VI -3492969728,3492998911,US +3492969728,3492994815,US +3492994816,3492995071,GB +3492995072,3492998911,US 3492998912,3492999136,GB 3492999137,3492999137,US 3492999138,3492999167,GB -3492999168,3493009151,US -3493009152,3493009205,MX -3493009206,3493009206,US -3493009207,3493009407,MX -3493009408,3493039359,US +3492999168,3493008127,US +3493008128,3493008383,GB +3493008384,3493039359,US 3493039360,3493039615,AR 3493039616,3493073151,US 3493073152,3493073407,BO @@ -102432,16 +105924,16 @@ 3495193600,3495215103,US 3495215104,3495217151,VI 3495217152,3495219199,VC -3495219200,3495225855,US -3495225856,3495226111,GB -3495226112,3495251967,US +3495219200,3495251967,US 3495251968,3495254015,CA 3495254016,3495260159,US 3495260160,3495261183,CA 3495261184,3495271423,US 3495272192,3495285759,US 3495285760,3495288831,CA -3495288832,3495332863,US +3495288832,3495331839,US +3495331840,3495332095,CA +3495332096,3495332863,US 3495332864,3495333887,CA 3495333888,3495349247,US 3495349248,3495350271,CA @@ -102457,7 +105949,9 @@ 3495375872,3495376895,CA 3495376896,3495399423,US 3495399424,3495400447,KN -3495400448,3495406335,US +3495400448,3495405055,US +3495405056,3495405567,HK +3495405568,3495406335,US 3495406336,3495406591,LB 3495406592,3495412735,US 3495412736,3495413759,CA @@ -102496,8 +105990,8 @@ 3495619584,3495620607,US 3495620608,3495622655,CA 3495622656,3495651327,US -3495653376,3495654143,US -3495654144,3495654399,CA +3495653376,3495653887,US +3495653888,3495654399,CA 3495654400,3495673855,US 3495673856,3495674879,MF 3495674880,3495675162,VG @@ -102534,11 +106028,11 @@ 3495864320,3495864831,DM 3495864832,3495865343,MF 3495865344,3495866367,US -3495866368,3495867050,VC +3495866368,3495866623,VC +3495866624,3495866879,LC +3495866880,3495867050,VC 3495867051,3495867051,LC -3495867052,3495867135,VC -3495867136,3495867391,LC -3495867392,3495868415,VC +3495867052,3495868415,VC 3495868416,3495871487,US 3495871488,3495872511,CA 3495872512,3495881471,US @@ -102593,9 +106087,7 @@ 3497161944,3497162495,US 3497162496,3497162751,GB 3497162752,3497163007,NL -3497163008,3497163167,US -3497163168,3497163175,GB -3497163176,3497164799,US +3497163008,3497164799,US 3497164800,3497181183,CA 3497181184,3497410559,US 3497410560,3497431039,CA @@ -102782,8 +106274,8 @@ 3507012640,3507025407,US 3507025408,3507025663,IQ 3507025664,3507055103,US -3507055104,3507055359,CN -3507055360,3507060735,US +3507055104,3507055615,CN +3507055616,3507060735,US 3507060736,3507060991,CN 3507060992,3507290111,US 3507290112,3507355647,AR @@ -103067,7 +106559,9 @@ 3509565184,3509566463,CA 3509566464,3509567231,US 3509567232,3509569023,CA -3509569024,3509572351,US +3509569024,3509570047,US +3509570048,3509570303,CA +3509570304,3509572351,US 3509572352,3509573375,CA 3509573376,3509573439,US 3509573440,3509573455,CA @@ -103280,8 +106774,8 @@ 3512461056,3512463103,PR 3512463104,3512463359,US 3512463360,3512464639,PR -3512464640,3512465151,US -3512465152,3512465407,PR +3512464640,3512464895,US +3512464896,3512465407,PR 3512465408,3512465663,US 3512465664,3512465919,PR 3512465920,3512466175,US @@ -103353,7 +106847,9 @@ 3513368576,3513376767,CA 3513376768,3513475071,US 3513475072,3513483263,CA -3513499648,3513501183,US +3513499648,3513500415,US +3513500416,3513500671,AU +3513500672,3513501183,US 3513501184,3513501439,PH 3513501440,3513778175,US 3513778176,3513794559,CA @@ -103399,7 +106895,9 @@ 3515358976,3515359231,MX 3515359232,3515596799,US 3515596800,3515613183,CA -3515613184,3515711487,US +3515613184,3515688686,US +3515688687,3515688687,PT +3515688688,3515711487,US 3515711488,3515731967,CA 3515731968,3515736063,US 3515736064,3515744255,DE @@ -103416,7 +106914,9 @@ 3516139008,3516139263,GB 3516139264,3516170239,US 3516170240,3516203007,CA -3516203008,3516334079,US +3516203008,3516305407,US +3516305408,3516309503,PK +3516309504,3516334079,US 3516334080,3516342271,CA 3516342272,3516357631,US 3516357632,3516357887,MY @@ -103482,7 +106982,9 @@ 3517391872,3517392127,CA 3517392128,3517392383,US 3517392384,3517393407,CA -3517393408,3517394431,US +3517393408,3517393919,US +3517393920,3517394175,CA +3517394176,3517394431,US 3517394432,3517394943,CA 3517394944,3517395199,US 3517395200,3517395455,CA @@ -103646,7 +107148,9 @@ 3518472192,3518762495,US 3518762496,3518762751,GB 3518762752,3518765311,US -3518765312,3518765567,CA +3518765312,3518765343,CA +3518765344,3518765351,US +3518765352,3518765567,CA 3518765568,3518912511,US 3518912512,3518912767,IN 3518912768,3518918143,US @@ -103742,11 +107246,8 @@ 3521249280,3521314815,CA 3521314816,3521347583,US 3521347584,3521363967,CA -3521363968,3521366783,US -3521366784,3521367039,CY -3521367040,3521802239,US -3521804544,3521804799,US -3521806336,3521837055,US +3521363968,3521380351,IT +3521380352,3521837055,US 3521837056,3521837311,SG 3521837312,3521904639,US 3521904640,3521921023,JM @@ -103790,9 +107291,7 @@ 3522174976,3522179071,BM 3522179072,3522195455,US 3522195456,3522199551,CA -3522199552,3522816767,US -3522816768,3522817023,CA -3522817024,3522854911,US +3522199552,3522854911,US 3522854912,3522871295,CA 3522871296,3522893823,US 3522893824,3522894847,CA @@ -103811,7 +107310,8 @@ 3523297280,3523317759,PH 3523317760,3523330047,JP 3523330048,3523338239,AU -3523338240,3523340287,MY +3523338240,3523339775,MY +3523339776,3523340287,HK 3523340288,3523341311,AU 3523341312,3523342335,JP 3523342336,3523346431,BD @@ -103860,13 +107360,67 @@ 3523686400,3523688447,AU 3523688448,3523690495,CN 3523690496,3523698687,IN -3523698688,3523700735,JP +3523698688,3523698863,HK +3523698864,3523698879,JP +3523698880,3523698943,HK +3523698944,3523698975,JP +3523698976,3523699007,HK +3523699008,3523699071,JP +3523699072,3523699199,HK +3523699200,3523699711,US +3523699712,3523700223,JP +3523700224,3523700287,US +3523700288,3523700351,JP +3523700352,3523700415,US +3523700416,3523700671,JP +3523700672,3523700679,HK +3523700680,3523700735,JP 3523700736,3523701759,HK -3523701760,3523707903,JP +3523701760,3523702783,JP +3523702784,3523702799,SG +3523702800,3523702807,SN +3523702808,3523702847,SG +3523702848,3523702871,JP +3523702872,3523702911,SG +3523702912,3523703039,JP +3523703040,3523703103,SG +3523703104,3523704703,JP +3523704704,3523704719,SG +3523704720,3523704751,JP +3523704752,3523704783,SG +3523704784,3523704791,JP +3523704792,3523704831,SG +3523704832,3523704839,HK +3523704840,3523706879,JP +3523706880,3523707039,AU +3523707040,3523707071,JP +3523707072,3523707103,AU +3523707104,3523707119,JP +3523707120,3523707135,AU +3523707136,3523707903,GB 3523707904,3523708159,AU -3523708160,3523723263,JP +3523708160,3523708287,JP +3523708288,3523708319,AU +3523708320,3523708351,JP +3523708352,3523708415,AU +3523708416,3523708927,JP +3523708928,3523708975,AU +3523708976,3523708991,JP +3523708992,3523709183,AU +3523709184,3523713023,JP +3523713024,3523713135,AU +3523713136,3523714047,JP +3523714048,3523714719,AU +3523714720,3523714799,JP +3523714800,3523714943,AU +3523714944,3523715007,GB +3523715008,3523715031,JP +3523715032,3523715071,AU +3523715072,3523723263,JP 3523723264,3523725311,US -3523725312,3523739647,JP +3523725312,3523737599,JP +3523737600,3523738111,US +3523738112,3523739647,JP 3523739648,3524001791,AU 3524001792,3524132863,CN 3524132864,3524145151,PH @@ -103875,9 +107429,20 @@ 3524157440,3524161535,AU 3524161536,3524247551,CN 3524247552,3524263935,AU -3524263936,3524274175,PH +3524263936,3524266495,PH +3524266496,3524266751,SG +3524266752,3524274175,PH 3524274176,3524274431,SG 3524274432,3524280319,PH +3524280320,3524281343,JP +3524281344,3524282367,AU +3524282368,3524288511,IN +3524288512,3524289535,HK +3524289536,3524290559,IN +3524290560,3524291583,CN +3524291584,3524294655,IN +3524294656,3524295679,SG +3524295680,3524296703,PH 3524296704,3524313087,CN 3524313088,3524329471,KR 3524329472,3524362239,TW @@ -103895,8 +107460,95 @@ 3524745984,3524747263,MP 3524747264,3524755455,PH 3524755456,3524763647,AU -3524763648,3524788223,PH -3524788224,3524853759,SG +3524763648,3524781791,PH +3524781792,3524781823,SG +3524781824,3524788223,PH +3524788224,3524790271,SG +3524790272,3524794367,JP +3524794368,3524800511,SG +3524800512,3524800767,JP +3524800768,3524801023,SG +3524801024,3524801535,JP +3524801536,3524801791,SG +3524801792,3524802047,JP +3524802048,3524802303,SG +3524802304,3524802559,JP +3524802560,3524804863,SG +3524804864,3524809215,JP +3524809216,3524809727,SG +3524809728,3524810239,JP +3524810240,3524810495,SG +3524810496,3524812799,JP +3524812800,3524821503,SG +3524821504,3524822271,JP +3524822272,3524822527,SG +3524822528,3524822783,JP +3524822784,3524823807,SG +3524823808,3524824031,JP +3524824032,3524824319,SG +3524824320,3524824575,JP +3524824576,3524824831,SG +3524824832,3524825343,JP +3524825344,3524825855,SG +3524825856,3524826367,JP +3524826368,3524826879,SG +3524826880,3524827455,JP +3524827456,3524827471,SG +3524827472,3524828159,JP +3524828160,3524828415,SG +3524828416,3524829183,JP +3524829184,3524829439,SG +3524829440,3524829695,JP +3524829696,3524830207,SG +3524830208,3524830463,JP +3524830464,3524830719,SG +3524830720,3524830975,JP +3524830976,3524831487,SG +3524831488,3524831743,JP +3524831744,3524832511,SG +3524832512,3524832767,JP +3524832768,3524833023,SG +3524833024,3524835583,JP +3524835584,3524835839,SG +3524835840,3524836095,JP +3524836096,3524836351,SG +3524836352,3524836607,JP +3524836608,3524837119,SG +3524837120,3524837375,JP +3524837376,3524837631,SG +3524837632,3524838655,JP +3524838656,3524839167,SG +3524839168,3524839935,JP +3524839936,3524840447,SG +3524840448,3524840703,JP +3524840704,3524840959,SG +3524840960,3524841471,JP +3524841472,3524842751,SG +3524842752,3524843007,JP +3524843008,3524843263,SG +3524843264,3524843519,JP +3524843520,3524843775,SG +3524843776,3524844031,JP +3524844032,3524844543,SG +3524844544,3524845567,JP +3524845568,3524845823,SG +3524845824,3524846079,JP +3524846080,3524846335,SG +3524846336,3524846591,JP +3524846592,3524847359,SG +3524847360,3524847615,JP +3524847616,3524847871,SG +3524847872,3524848127,JP +3524848128,3524848383,SG +3524848384,3524848639,JP +3524848640,3524849407,SG +3524849408,3524849663,JP +3524849664,3524849919,SG +3524849920,3524850175,JP +3524850176,3524850431,SG +3524850432,3524850687,JP +3524850688,3524851455,SG +3524851456,3524853759,JP 3524853760,3526361087,CN 3526361088,3526393855,NZ 3526393856,3526395903,JP @@ -103923,7 +107575,9 @@ 3526926336,3526934527,JP 3526934528,3526942719,CN 3526942720,3526950911,AU -3526950912,3527004159,JP +3526950912,3527002111,JP +3527002112,3527003647,IN +3527003648,3527004159,JP 3527004160,3527008255,ID 3527008256,3527016447,KR 3527016448,3527933951,TW @@ -103964,9 +107618,7 @@ 3531603968,3532290815,JP 3532290816,3532291071,GB 3532291072,3534749695,JP -3534749696,3534756351,HK -3534756352,3534756383,CN -3534756384,3534757887,HK +3534749696,3534757887,HK 3534757888,3534758143,AU 3534758144,3534758147,JP 3534758148,3534758911,AU @@ -103980,9 +107632,7 @@ 3534760960,3534761983,AU 3534761984,3534787327,HK 3534787328,3534787583,TH -3534787584,3534852095,HK -3534852096,3534852351,AU -3534852352,3534863443,HK +3534787584,3534863443,HK 3534863444,3534863444,CN 3534863445,3534880767,HK 3534880768,3535273983,KR @@ -104085,8 +107735,10 @@ 3557007360,3557015551,IT 3557015552,3557023743,DE 3557023744,3557027327,GB -3557027328,3557027455,NL -3557027456,3557028415,GB +3557027328,3557027583,BE +3557027584,3557027839,GB +3557027840,3557028095,BE +3557028096,3557028415,GB 3557028416,3557028479,BE 3557028480,3557031935,GB 3557031936,3557040127,IT @@ -104132,9 +107784,7 @@ 3557360128,3557360135,GB 3557360136,3557360263,JE 3557360264,3557360271,GB -3557360272,3557364555,JE -3557364556,3557364556,GG -3557364557,3557365791,JE +3557360272,3557365791,JE 3557365792,3557365799,GB 3557365800,3557367807,JE 3557367808,3557375999,DE @@ -104186,11 +107836,16 @@ 3557834752,3557842943,IR 3557842944,3557851135,FI 3557851136,3557859327,HU -3557859328,3557861983,SE -3557861984,3557862015,FI -3557862016,3557863295,SE +3557859328,3557861919,SE +3557861920,3557862081,FI +3557862082,3557862082,SE +3557862083,3557862143,FI +3557862144,3557863295,SE 3557863296,3557863327,FI -3557863328,3557864311,SE +3557863328,3557863887,SE +3557863888,3557863903,NO +3557863904,3557863919,FI +3557863920,3557864311,SE 3557864312,3557864319,FI 3557864320,3557867519,SE 3557867520,3557875711,RU @@ -104200,9 +107855,9 @@ 3557900288,3557916671,AT 3557916672,3557924863,NO 3557924864,3557925887,AX -3557925888,3557927679,FI -3557927680,3557927935,AX -3557927936,3557929983,FI +3557925888,3557926143,FI +3557926144,3557926399,AX +3557926400,3557929983,FI 3557929984,3557933055,AX 3557933056,3557941247,IT 3557941248,3557957631,DE @@ -104216,8 +107871,7 @@ 3558010880,3558012927,FR 3558012928,3558014207,GB 3558014208,3558014463,NL -3558014464,3558014464,US -3558014465,3558014719,IL +3558014464,3558014719,US 3558014720,3558014975,NL 3558014976,3558023167,RU 3558023168,3558031359,DE @@ -104247,7 +107901,11 @@ 3558203392,3558211583,ES 3558211584,3558219775,GB 3558219776,3558227967,ES -3558227968,3558232063,RU +3558227968,3558230015,RU +3558230016,3558231039,PL +3558231040,3558231551,RU +3558231552,3558231807,SK +3558231808,3558232063,FR 3558232064,3558232575,LB 3558232576,3558235647,RU 3558235648,3558235903,LB @@ -104260,14 +107918,16 @@ 3558277120,3558285951,GB 3558285952,3558286079,DE 3558286080,3558286591,GB -3558286592,3558286655,FR -3558286656,3558289119,GB +3558286592,3558286847,FR +3558286848,3558289119,GB 3558289120,3558289151,FR 3558289152,3558289431,GB 3558289432,3558289439,NL 3558289440,3558289975,GB 3558289976,3558289983,CZ -3558289984,3558291071,GB +3558289984,3558290831,GB +3558290832,3558290847,ES +3558290848,3558291071,GB 3558291072,3558291135,DE 3558291136,3558292255,GB 3558292256,3558292271,SE @@ -104369,7 +108029,9 @@ 3559089936,3559089951,BE 3559089952,3559090239,GB 3559090240,3559090303,BE -3559090304,3559092243,GB +3559090304,3559091711,GB +3559091712,3559091967,BE +3559091968,3559092243,GB 3559092244,3559092244,BE 3559092245,3559093311,GB 3559093312,3559093319,BE @@ -104398,7 +108060,11 @@ 3559200256,3559200511,FI 3559200512,3559200639,SE 3559200640,3559200671,FI -3559200672,3559202815,SE +3559200672,3559201607,SE +3559201608,3559201615,FI +3559201616,3559201871,SE +3559201872,3559201879,FI +3559201880,3559202815,SE 3559202816,3559211007,DE 3559211008,3559219199,SK 3559219200,3559227391,SE @@ -104508,7 +108174,9 @@ 3559989248,3559997439,PL 3559997440,3560005631,KE 3560005632,3560013823,RU -3560013824,3560022751,GB +3560013824,3560015871,GB +3560015872,3560016127,ES +3560016128,3560022751,GB 3560022752,3560022767,ES 3560022768,3560023631,GB 3560023632,3560023639,ES @@ -104737,7 +108405,9 @@ 3561267200,3561275391,UA 3561275392,3561291775,BE 3561291776,3561299967,RS -3561299968,3561308159,GB +3561299968,3561302271,GB +3561302272,3561302527,NL +3561302528,3561308159,GB 3561308160,3561316351,PL 3561316352,3561324543,RU 3561324544,3561325567,IT @@ -104761,7 +108431,11 @@ 3561472000,3561480191,DE 3561480192,3561488383,GB 3561488384,3561496575,OM -3561496576,3561502719,GB +3561496576,3561496831,GB +3561496832,3561497087,NL +3561497088,3561498623,GB +3561498624,3561498879,NL +3561498880,3561502719,GB 3561502720,3561503743,NL 3561503744,3561504767,GB 3561504768,3561512959,DE @@ -104790,7 +108464,9 @@ 3561611520,3561611775,FR 3561611776,3561612543,GB 3561612544,3561612799,FR -3561612800,3561615871,GB +3561612800,3561613567,GB +3561613568,3561613823,FR +3561613824,3561615871,GB 3561615872,3561616127,FR 3561616128,3561616639,GB 3561616640,3561616895,FR @@ -104824,9 +108500,9 @@ 3561897984,3561906175,GB 3561906176,3561914367,DE 3561914368,3561922559,ES -3561922560,3561924863,GB -3561924864,3561925119,NL -3561925120,3561925343,GB +3561922560,3561925023,GB +3561925024,3561925039,NL +3561925040,3561925343,GB 3561925344,3561925375,NL 3561925376,3561929967,GB 3561929968,3561929983,NL @@ -105187,13 +108863,13 @@ 3564734744,3564734751,DE 3564734752,3564736535,GB 3564736536,3564736543,DE -3564736544,3564738815,GB -3564738816,3564739071,DE -3564739072,3564739345,GB +3564736544,3564739345,GB 3564739346,3564739346,DE 3564739347,3564739367,GB 3564739368,3564739375,DE -3564739376,3564740095,GB +3564739376,3564739583,GB +3564739584,3564739839,DE +3564739840,3564740095,GB 3564740096,3564740351,DE 3564740352,3564740607,GB 3564740608,3564748799,FR @@ -105234,9 +108910,7 @@ 3564889634,3564889634,NL 3564889635,3564891119,GB 3564891120,3564891135,NL -3564891136,3564892671,GB -3564892672,3564892927,NL -3564892928,3564895231,GB +3564891136,3564895231,GB 3564895232,3564895743,NL 3564895744,3564896255,GB 3564896256,3564904447,RU @@ -105347,7 +109021,11 @@ 3565763884,3565763891,GB 3565764096,3565764183,GB 3565764192,3565764207,GB -3565764256,3565766655,GB +3565764256,3565764367,GB +3565764376,3565764439,GB +3565764448,3565764455,GB +3565764464,3565764551,GB +3565764576,3565766655,GB 3565766912,3565767167,GB 3565767176,3565767255,GB 3565767272,3565767287,GB @@ -105470,15 +109148,21 @@ 3567388352,3567388383,DE 3567388384,3567388543,GB 3567388544,3567388607,DE -3567388608,3567388927,GB +3567388608,3567388647,GB +3567388648,3567388655,DE +3567388656,3567388927,GB 3567388928,3567389183,DE -3567389184,3567389439,GB -3567389440,3567390975,DE +3567389184,3567389695,GB +3567389696,3567390975,DE 3567390976,3567391231,GB 3567391232,3567391487,DE -3567391488,3567394815,GB +3567391488,3567393801,GB +3567393802,3567393802,SI +3567393803,3567394815,GB 3567394816,3567395071,IE -3567395072,3567403007,GB +3567395072,3567400703,GB +3567400704,3567400959,DE +3567400960,3567403007,GB 3567403008,3567419391,IT 3567419392,3567427583,SA 3567427584,3567435775,SE @@ -105575,16 +109259,16 @@ 3568795648,3568803839,GB 3568803840,3568812031,IT 3568812032,3568828415,ES -3568828416,3568904191,DE -3568904192,3568904447,GB -3568904448,3568959487,DE +3568828416,3568959487,DE 3568959488,3569025023,AT 3569025024,3569057791,NL 3569057792,3569074687,GB 3569074688,3569074943,IE 3569074944,3569075455,GB 3569075456,3569075711,IE -3569075712,3569090559,GB +3569075712,3569076223,GB +3569076224,3569076479,FR +3569076480,3569090559,GB 3569090560,3569123327,RU 3569123328,3569156095,GB 3569156096,3569188863,NL @@ -105638,7 +109322,9 @@ 3571321056,3571321071,DE 3571321072,3571321823,GB 3571321824,3571321855,DE -3571321856,3571384319,GB +3571321856,3571351551,GB +3571351552,3571351807,DE +3571351808,3571384319,GB 3571384320,3571425695,DE 3571425696,3571425727,ES 3571425728,3571474431,DE @@ -105734,8 +109420,8 @@ 3574186816,3574187007,GB 3574187008,3574188031,ES 3574188032,3574190591,GB -3574190592,3574190847,ES -3574190848,3574191615,GB +3574190592,3574191103,ES +3574191104,3574191615,GB 3574191616,3574192127,ES 3574192128,3574195199,GB 3574195200,3574196223,ES @@ -105753,15 +109439,9 @@ 3574531632,3574531639,GB 3574531640,3574594559,SE 3574594560,3574595583,GB -3574595584,3574596607,FR -3574596608,3574596863,MF -3574596864,3574598143,FR -3574598144,3574598399,MQ -3574598400,3574598655,FR -3574598656,3574598911,MQ -3574598912,3574599423,FR -3574599424,3574599679,MQ -3574599680,3574601215,FR +3574595584,3574598911,FR +3574598912,3574599167,MQ +3574599168,3574601215,FR 3574601216,3574601471,GP 3574601472,3574603775,FR 3574603776,3574611967,BG @@ -105947,7 +109627,9 @@ 3576089776,3576089791,GB 3576091408,3576091423,GB 3576091456,3576091479,GB -3576091904,3576092159,GB +3576091968,3576091983,GB +3576092000,3576092031,GB +3576092128,3576092159,GB 3576092864,3576092895,GB 3576093064,3576093071,GB 3576093184,3576093247,GB @@ -105955,9 +109637,13 @@ 3576099072,3576100863,GB 3576101376,3576110939,GB 3576110940,3576110943,NL -3576110944,3576116127,GB +3576110944,3576113919,GB +3576113920,3576114175,FR +3576114176,3576116127,GB 3576116128,3576116135,DE -3576116136,3576134653,GB +3576116136,3576126779,GB +3576126780,3576126783,ES +3576126784,3576134653,GB 3576134654,3576134654,CH 3576134655,3576135679,GB 3576135680,3576168447,DE @@ -105981,11 +109667,15 @@ 3576254696,3576254703,FR 3576254704,3576254775,GB 3576254776,3576254783,FR -3576254784,3576260607,GB +3576254784,3576258303,GB +3576258304,3576258559,FR +3576258560,3576260607,GB 3576260608,3576260623,FR 3576260624,3576260863,GB 3576260864,3576261119,FR -3576261120,3576263919,GB +3576261120,3576261887,GB +3576261888,3576262143,FR +3576262144,3576263919,GB 3576263920,3576263935,FR 3576263936,3576264255,GB 3576264256,3576264263,FR @@ -106017,34 +109707,21 @@ 3577000192,3577020415,GB 3577020416,3577085951,NL 3577085952,3577151487,DE -3577151488,3577151743,RE -3577151744,3577153023,FR +3577151488,3577153023,FR 3577153024,3577153279,RE -3577153280,3577154303,FR -3577154304,3577154815,RE -3577154816,3577155327,FR -3577155328,3577155839,RE -3577155840,3577156095,FR +3577153280,3577156095,FR 3577156096,3577156607,RE -3577156608,3577157375,FR -3577157376,3577157631,RE -3577157632,3577157887,FR -3577157888,3577158143,RE -3577158144,3577158399,FR -3577158400,3577158655,RE -3577158656,3577159423,FR +3577156608,3577159423,FR 3577159424,3577159679,RE -3577159680,3577159935,FR -3577159936,3577160447,RE -3577160448,3577161983,FR -3577161984,3577162751,RE -3577162752,3577163007,FR +3577159680,3577161983,FR +3577161984,3577162239,RE +3577162240,3577163007,FR 3577163008,3577163263,RE 3577163264,3577164073,FR 3577164074,3577164074,RE -3577164075,3577166079,FR -3577166080,3577166335,RE -3577166336,3577167871,FR +3577164075,3577166335,FR +3577166336,3577166591,RE +3577166592,3577167871,FR 3577167872,3577184255,ET 3577184256,3577217023,CH 3577217024,3577282559,FR @@ -106059,15 +109736,17 @@ 3577628672,3577629695,CH 3577635840,3577636863,DE 3577636864,3577637887,GB +3577639744,3577639775,FR 3577641200,3577641215,FR 3577641472,3577641983,FR -3577642496,3577642751,FR 3577650048,3577650063,NL 3577663488,3577664511,SE 3577669632,3577670655,BE 3577675776,3577741311,PT 3577741312,3578003455,SE -3578003456,3578265599,DE +3578003456,3578192895,DE +3578192896,3578193151,NL +3578193152,3578265599,DE 3578265600,3578331135,GB 3578331136,3578339327,PL 3578339328,3578347519,ES @@ -106092,11 +109771,11 @@ 3579019264,3579052031,DK 3579052032,3579117567,NL 3579117568,3579183103,RU -3579183104,3579193607,GB +3579183104,3579193599,GB +3579193600,3579193607,BE 3579193608,3579193615,NL -3579193616,3579193759,GB -3579193760,3579193775,NL -3579193776,3579197311,GB +3579193616,3579193855,BE +3579193856,3579197311,GB 3579197312,3579197439,US 3579197440,3579244831,GB 3579244832,3579244879,AT @@ -106117,13 +109796,13 @@ 3579740160,3579772927,IE 3579772928,3579838463,DE 3579838464,3580100607,ES -3580100608,3580103679,SE -3580103680,3580106751,LV -3580106752,3580112895,SE +3580100608,3580103167,SE +3580103168,3580107775,LV +3580107776,3580112895,SE 3580112896,3580116991,LV 3580116992,3580131327,SE -3580131328,3580133375,LV -3580133376,3580135423,SE +3580131328,3580134399,LV +3580134400,3580135423,SE 3580135424,3580135935,EE 3580135936,3580136447,SE 3580136448,3580138495,HR @@ -106133,32 +109812,38 @@ 3580162048,3580164095,EE 3580164096,3580165887,SE 3580165888,3580166143,NL -3580166144,3580199935,SE +3580166144,3580198911,SE +3580198912,3580199551,LV +3580199552,3580199935,SE 3580199936,3580200447,EE 3580200448,3580200959,SE 3580200960,3580203007,LT -3580203008,3580204543,SE +3580203008,3580203647,SE +3580203648,3580203775,AT +3580203776,3580204543,SE 3580204544,3580205055,NL 3580205056,3580206079,SE 3580206080,3580207103,HR 3580207104,3580208127,LV 3580208128,3580209151,EE 3580209152,3580213247,HR -3580213248,3580214271,LV -3580214272,3580215295,SE +3580213248,3580215295,LV 3580215296,3580217343,EE -3580217344,3580221439,SE -3580221440,3580221951,LV +3580217344,3580220415,SE +3580220416,3580221951,LV 3580221952,3580223487,SE 3580223488,3580231679,DE -3580231680,3580232447,SE +3580231680,3580231935,SE +3580231936,3580232191,LV +3580232192,3580232447,SE 3580232448,3580233215,LT 3580233216,3580233727,SE 3580233728,3580235263,LT 3580235264,3580235775,SE 3580235776,3580236799,LT 3580236800,3580237567,LV -3580237568,3580239871,SE +3580237568,3580237823,SE +3580237824,3580239871,LV 3580239872,3580241919,EE 3580241920,3580243967,SE 3580243968,3580244991,EE @@ -106167,7 +109852,8 @@ 3580248064,3580254207,EE 3580254208,3580255231,LV 3580255232,3580258303,DE -3580258304,3580258815,SE +3580258304,3580258559,LV +3580258560,3580258815,SE 3580258816,3580260351,DE 3580260352,3580265471,AT 3580265472,3580266495,SE @@ -106195,12 +109881,7 @@ 3580641280,3580643327,FR 3580643328,3580645375,UA 3580645376,3580647423,PL -3580647424,3580647679,GB -3580647680,3580647935,DE -3580647936,3580648027,GB -3580648028,3580648028,DE -3580648029,3580648447,GB -3580648448,3580649471,DE +3580647424,3580649471,DE 3580649472,3580651519,SE 3580651520,3580653567,NL 3580653568,3580655615,PL @@ -106243,9 +109924,7 @@ 3581255680,3581258751,FR 3581280256,3581411327,BE 3581411328,3581673471,GB -3581673472,3581922047,NL -3581922048,3581922303,GB -3581922304,3581935615,NL +3581673472,3581935615,NL 3581935616,3581943807,RU 3581943808,3581951999,FR 3581952000,3581960191,TR @@ -106302,7 +109981,11 @@ 3582255104,3582263295,KW 3582263296,3582271487,ME 3582271488,3582279679,NL -3582279680,3582287871,GB +3582279680,3582285311,GB +3582285312,3582285823,CY +3582285824,3582286335,GB +3582286336,3582286591,CY +3582286592,3582287871,GB 3582287872,3582296063,DE 3582296064,3582304255,GB 3582304256,3582312447,UA @@ -106322,7 +110005,9 @@ 3582443520,3582451711,DE 3582451712,3582459903,LU 3582459904,3582468095,NL -3582468096,3582476287,SE +3582468096,3582476239,SE +3582476240,3582476247,DK +3582476248,3582476287,SE 3582476288,3582484479,DE 3582484480,3582492671,CI 3582492672,3582509055,IT @@ -106442,15 +110127,14 @@ 3583361024,3583369215,IT 3583369216,3583377407,ES 3583377408,3583385599,AT -3583385600,3583390207,DK -3583390208,3583390463,LV -3583390464,3583393791,DK +3583385600,3583393791,DK 3583393792,3583401983,RU 3583401984,3583410175,KE 3583410176,3583418367,SE 3583418368,3583426559,TN 3583426560,3583428607,CV -3583428608,3583430655,CI +3583428608,3583428863,ZA +3583428864,3583430655,CI 3583430656,3583434751,ZA 3583434752,3583442943,AT 3583442944,3583451135,RU @@ -106750,7 +110434,8 @@ 3585634688,3585634815,NL 3585634816,3585635071,IT 3585635072,3585635199,NL -3585635200,3585635455,IL +3585635200,3585635327,IL +3585635328,3585635455,AE 3585635456,3585635711,NL 3585635712,3585635967,IL 3585635968,3585636095,NL @@ -106774,7 +110459,12 @@ 3585736704,3585744895,HR 3585744896,3585753087,FR 3585753088,3585761279,PL -3585761280,3585769471,UA +3585761280,3585765375,UA +3585765376,3585765631,RU +3585765632,3585767679,UA +3585767680,3585768191,RU +3585768192,3585769215,UA +3585769216,3585769471,RU 3585769472,3585777663,TR 3585777664,3585785855,JO 3585785856,3585794047,UA @@ -106800,9 +110490,7 @@ 3585900544,3585906687,NO 3585906688,3585907711,CZ 3585907712,3585908735,NO -3585908736,3585910015,GP -3585910016,3585910271,MQ -3585910272,3585916671,GP +3585908736,3585916671,GP 3585916672,3585916927,MQ 3585916928,3585925119,IT 3585925120,3585933311,CH @@ -106839,8 +110527,8 @@ 3586162688,3586179071,FI 3586179072,3586195455,ES 3586195456,3586203647,RU -3586203648,3586204159,KE -3586204160,3586204671,ZM +3586203648,3586204415,KE +3586204416,3586204671,ZM 3586204672,3586205695,KE 3586205696,3586207743,BW 3586207744,3586208767,ZA @@ -106876,18 +110564,34 @@ 3586547712,3586547967,NL 3586547968,3586555903,DE 3586555904,3586572287,IT -3586572288,3586588671,RS +3586572288,3586585215,RS +3586585216,3586585223,XK +3586585224,3586586255,RS +3586586256,3586586263,XK +3586586264,3586588671,RS 3586588672,3586596863,IT 3586596864,3586605055,GB 3586605056,3586621439,SE 3586621440,3586621695,GB -3586621696,3586625535,IE -3586625536,3586629631,GB -3586629632,3586634047,IE +3586621696,3586625535,NL +3586625536,3586628095,GB +3586628096,3586628127,NL +3586628128,3586628159,GB +3586628160,3586628191,IE +3586628192,3586629631,GB +3586629632,3586633727,IE +3586633728,3586633983,NL +3586633984,3586634047,IE 3586634048,3586634079,NL -3586634080,3586634239,IE -3586634240,3586634495,NL -3586634496,3586637823,IE +3586634080,3586634087,IE +3586634088,3586634175,NL +3586634176,3586634239,IE +3586634240,3586634751,NL +3586634752,3586634783,IE +3586634784,3586634879,NL +3586634880,3586634943,IE +3586634944,3586635775,NL +3586635776,3586637823,IE 3586637824,3586654207,PL 3586654208,3586662399,GE 3586662400,3586670591,UA @@ -106966,7 +110670,9 @@ 3587193600,3587194879,DE 3587194880,3587211263,GB 3587211264,3587219455,AT -3587219456,3587227647,RU +3587219456,3587222271,RU +3587222272,3587222527,RO +3587222528,3587227647,RU 3587227648,3587230719,GB 3587230720,3587230975,NL 3587230976,3587231231,GB @@ -106985,9 +110691,11 @@ 3587239488,3587239495,NL 3587239496,3587239583,GB 3587239584,3587239599,NL -3587239600,3587239679,GB -3587239680,3587240191,NL -3587240192,3587242495,GB +3587239600,3587239711,GB +3587239712,3587239727,NL +3587239728,3587239791,GB +3587239792,3587239799,NL +3587239800,3587242495,GB 3587242496,3587242751,NL 3587242752,3587244031,GB 3587244032,3587260415,IT @@ -107004,8 +110712,8 @@ 3587391488,3587407871,KZ 3587407872,3587412223,BE 3587412224,3587413759,NL -3587413760,3587414015,BE -3587414016,3587415039,NL +3587413760,3587414271,BE +3587414272,3587415039,NL 3587415040,3587422719,BE 3587422720,3587423743,NL 3587423744,3587424255,BE @@ -107141,7 +110849,9 @@ 3589034496,3589037055,GB 3589037056,3589037311,NL 3589037312,3589046271,GB -3589046272,3589079039,NO +3589046272,3589055661,NO +3589055662,3589055662,GB +3589055663,3589079039,NO 3589079040,3589128191,DK 3589128192,3589144575,GB 3589144576,3589152767,UA @@ -107180,10 +110890,8 @@ 3589537792,3589545983,FR 3589545984,3589554175,DE 3589554176,3589570559,PS -3589570560,3589578751,GB -3589578752,3589579007,NL -3589579008,3589580543,GB -3589580544,3589581055,NL +3589570560,3589580799,GB +3589580800,3589581055,NL 3589581056,3589582975,GB 3589582976,3589583103,NL 3589583104,3589586943,GB @@ -107210,6 +110918,7 @@ 3589810432,3589810687,PL 3589810688,3589816319,RU 3589825792,3589826047,DE +3589826718,3589826718,AT 3589827584,3589827647,DE 3589827712,3589827839,DE 3589828736,3589828991,NL @@ -107320,7 +111029,9 @@ 3624288256,3624290303,IN 3624290304,3624292351,CA 3624292352,3624292607,MF -3624292608,3624295423,US +3624292608,3624295176,US +3624295177,3624295177,SG +3624295178,3624295423,US 3624295424,3624295679,CA 3624295680,3624295935,US 3624295936,3624296191,LY @@ -107341,17 +111052,11 @@ 3624357888,3624358143,KN 3624358144,3624359679,US 3624359680,3624360703,CW -3624360704,3624374447,US -3624374448,3624374455,ES -3624374456,3624374559,US +3624360704,3624374559,US 3624374560,3624374599,ES 3624374600,3624375871,US 3624375872,3624375879,NL -3624375880,3624376247,US -3624376248,3624376263,ES -3624376264,3624376287,US -3624376288,3624376295,GB -3624376296,3624376335,US +3624375880,3624376335,US 3624376336,3624376343,AU 3624376344,3624376351,US 3624376352,3624376359,PT @@ -107481,7 +111186,9 @@ 3628225780,3628225783,GB 3628225784,3628236799,US 3628236800,3628257279,CA -3628257280,3628598271,US +3628257280,3628580863,US +3628580864,3628581119,CA +3628581120,3628598271,US 3628598272,3628599295,CO 3628599296,3628603391,CL 3628603392,3628604415,US @@ -107538,9 +111245,7 @@ 3628679168,3628683263,CA 3628687360,3628834815,US 3628834816,3628843007,CA -3628843008,3628850687,US -3628850688,3628850943,AU -3628850944,3629187071,US +3628843008,3629187071,US 3629187072,3629195263,CA 3629195264,3629199359,US 3629199360,3629201439,CA @@ -107704,8 +111409,8 @@ 3630854144,3630895615,US 3630895616,3630895871,CA 3630895872,3630897407,US -3630897408,3630897919,CA -3630897920,3630956543,US +3630897408,3630897663,CA +3630897664,3630956543,US 3630956544,3631005695,CA 3631005696,3631039487,US 3631039488,3631039743,CA @@ -107859,9 +111564,7 @@ 3634759936,3634880511,US 3634880512,3634888703,CA 3634888704,3634913279,US -3634913280,3634915663,CA -3634915664,3634915679,US -3634915680,3634921471,CA +3634913280,3634921471,CA 3634921472,3634925567,US 3634925568,3634929663,CA 3634929664,3635044351,US @@ -107922,9 +111625,7 @@ 3635741696,3635741951,US 3635741952,3635745535,CA 3635745536,3635746047,US -3635746048,3635750143,CA -3635750144,3635750399,US -3635750400,3635751935,CA +3635746048,3635751935,CA 3635751936,3635752191,US 3635752192,3635752447,CA 3635752448,3635752703,US @@ -107932,9 +111633,7 @@ 3635754240,3635754362,US 3635754363,3635754363,CA 3635754364,3635755007,US -3635755008,3635755519,CA -3635755520,3635755775,US -3635755776,3635760895,CA +3635755008,3635760895,CA 3635760896,3635761151,US 3635761152,3635762687,CA 3635762688,3635762943,US @@ -107967,7 +111666,9 @@ 3635961856,3635963903,SV 3635963904,3635964415,US 3635964416,3635965951,SV -3635965952,3635966975,US +3635965952,3635966323,US +3635966324,3635966324,ES +3635966325,3635966975,US 3635966976,3635967999,PY 3635968000,3635970047,SV 3635970048,3636019199,US @@ -108137,8 +111838,12 @@ 3639550240,3639550247,MX 3639550248,3639550311,US 3639550312,3639550319,AU -3639550320,3639554559,US -3639554560,3639554748,GB +3639550320,3639550431,US +3639550432,3639550463,CA +3639550464,3639554559,US +3639554560,3639554665,GB +3639554666,3639554666,US +3639554667,3639554748,GB 3639554749,3639554749,US 3639554750,3639554815,GB 3639554816,3639555839,US @@ -108158,7 +111863,9 @@ 3639593984,3639595007,GB 3639595008,3639607295,US 3639607296,3639611391,CA -3639611392,3639656447,US +3639611392,3639639807,US +3639639808,3639640063,CA +3639640064,3639656447,US 3639656448,3639660543,CA 3639660544,3639664639,US 3639664640,3639668735,CA @@ -108246,17 +111953,7 @@ 3639680896,3639680959,CL 3639680960,3639680991,CO 3639680992,3639681023,CL -3639681024,3639684863,US -3639684864,3639684865,SA -3639684866,3639684866,US -3639684867,3639684897,SA -3639684898,3639684898,US -3639684899,3639684961,SA -3639684962,3639684962,US -3639684963,3639685071,SA -3639685072,3639685087,US -3639685088,3639685119,SA -3639685120,3639692031,US +3639681024,3639692031,US 3639692032,3639692287,GB 3639692288,3639704573,US 3639704574,3639704574,GB @@ -108293,7 +111990,10 @@ 3640318208,3640318975,NC 3640318976,3640319231,US 3640319232,3640319487,NG -3640319488,3640346879,US +3640319488,3640340479,US +3640341760,3640342015,US +3640344064,3640344319,US +3640344576,3640346879,US 3640346880,3640347134,MX 3640347135,3640360959,US 3640360960,3640369151,CA @@ -108351,9 +112051,7 @@ 3641356536,3641356543,CM 3641356544,3641357983,GB 3641357984,3641358015,SL -3641358016,3641359615,GB -3641359616,3641359871,US -3641359872,3641360383,GB +3641358016,3641360383,GB 3641360384,3641368575,RO 3641368576,3641372671,GB 3641372672,3641376767,BG @@ -108591,13 +112289,22 @@ 3642355712,3642359807,SE 3642359808,3642367999,RU 3642368000,3642376191,CH -3642376192,3642380287,RS +3642376192,3642376447,XK +3642376448,3642377983,RS +3642377984,3642378047,XK +3642378048,3642379007,RS +3642379008,3642379263,XK +3642379264,3642379775,RS +3642379776,3642380063,XK +3642380064,3642380287,RS 3642380288,3642384383,IT 3642384384,3642392575,NL 3642392576,3642394623,AT 3642394624,3642396671,FR 3642396672,3642404863,MD -3642408960,3642413055,FR +3642408960,3642411007,FR +3642411008,3642411519,AE +3642411520,3642413055,FR 3642413056,3642415103,RS 3642415104,3642417151,GB 3642417152,3642419199,DE @@ -108878,7 +112585,7 @@ 3645616128,3645620223,AT 3645620224,3645624319,BA 3645624320,3645628415,CZ -3645628416,3645636607,PT +3645628416,3645636607,ES 3645636608,3645640703,AM 3645640704,3645644799,NL 3645644800,3645648895,RU @@ -108978,9 +112685,7 @@ 3647209472,3647602687,NL 3647602688,3647733759,RU 3647733760,3647864831,FR -3647864832,3647880703,DE -3647880704,3647880959,PL -3647880960,3647916799,DE +3647864832,3647916799,DE 3647916800,3647917055,SE 3647917056,3647963135,DE 3647963136,3647963391,BE @@ -109037,11 +112742,9 @@ 3647980544,3647981567,GB 3647981568,3647982591,BE 3647982592,3647983615,IT -3647983616,3647984031,DE -3647984032,3647984047,NL -3647984048,3647984127,DE -3647984128,3647984383,NL -3647984384,3647986431,DE +3647983616,3647983871,DE +3647983872,3647984127,NL +3647984128,3647986431,DE 3647986432,3647986687,ES 3647986688,3647987647,DE 3647987648,3647987655,ES @@ -109220,8 +112923,7 @@ 3649855488,3649857791,GB 3649857792,3649858047,IN 3649858048,3649859071,GB -3649859072,3649859327,US -3649859328,3649859583,GB +3649859072,3649859583,US 3649859584,3649863679,SE 3649863680,3649896447,FI 3649896448,3649961983,IT @@ -109379,23 +113081,31 @@ 3650879488,3650912255,RO 3650912256,3650916393,GB 3650916394,3650916394,FR -3650916395,3650920703,GB -3650920704,3650920895,LB -3650920896,3650920927,GR -3650920928,3650920959,LB +3650916395,3650918143,GB +3650918144,3650918399,CH +3650918400,3650920703,GB +3650920704,3650920959,GR 3650920960,3650920991,GB 3650920992,3650921007,IL -3650921008,3650922799,GB +3650921008,3650921087,GB +3650921088,3650921215,GR +3650921216,3650922799,GB 3650922800,3650922815,FR -3650922816,3650926335,GB -3650926336,3650926591,DE +3650922816,3650926591,GB 3650926592,3650929663,ES -3650929664,3650929847,GB +3650929664,3650929831,GB +3650929832,3650929839,DK +3650929840,3650929847,BE 3650929848,3650929855,FR 3650929856,3650929863,DE -3650929864,3650930431,GB -3650930432,3650930687,DE -3650930688,3650932943,GB +3650929864,3650929871,JE +3650929872,3650929879,NL +3650929880,3650929887,IT +3650929888,3650929895,LU +3650929896,3650929903,ES +3650929904,3650929911,SE +3650929912,3650929919,CH +3650929920,3650932943,GB 3650932944,3650932975,IT 3650932976,3650939607,GB 3650939608,3650939615,TR @@ -109443,7 +113153,9 @@ 3651289600,3651338239,CH 3651338240,3651353087,GB 3651353088,3651353343,FR -3651353344,3651403775,GB +3651353344,3651360767,GB +3651360768,3651361023,DE +3651361024,3651403775,GB 3651403776,3651534847,AE 3651534848,3651600383,NL 3651600384,3651665919,FR @@ -109562,9 +113274,9 @@ 3652157440,3652165631,RU 3652165632,3652170751,FR 3652170752,3652171007,MQ -3652171008,3652172031,FR -3652172032,3652172287,RE -3652172288,3652173823,FR +3652171008,3652172287,FR +3652172288,3652172543,RE +3652172544,3652173823,FR 3652173824,3652177919,AT 3652177920,3652182015,CY 3652182016,3652190207,DE @@ -109586,7 +113298,11 @@ 3653386240,3653390335,DE 3653390336,3653394431,FR 3653394432,3653402623,NL -3653402624,3653407103,GB +3653402624,3653406557,GB +3653406558,3653406558,GN +3653406559,3653406617,GB +3653406618,3653406618,GN +3653406619,3653407103,GB 3653407104,3653407111,UG 3653407112,3653408071,GB 3653408072,3653408079,NG @@ -109610,7 +113326,11 @@ 3653480448,3653484543,DK 3653484544,3653488639,TR 3653488640,3653492735,RU -3653492736,3653500927,NL +3653492736,3653497087,NL +3653497088,3653497343,US +3653497344,3653499647,NL +3653499648,3653499903,GB +3653499904,3653500927,NL 3653500928,3653505023,GB 3653505024,3653509119,KZ 3653509120,3653513215,NL @@ -109716,7 +113436,7 @@ 3663992320,3663992575,MY 3663992576,3663993599,NZ 3663993600,3663996159,ID -3663996160,3663996415,AU +3663996160,3663996415,BD 3663996416,3663996671,TH 3663996672,3663997183,AU 3663997184,3663997439,ID @@ -109817,7 +113537,9 @@ 3680403456,3680436223,JP 3680436224,3680501759,MY 3680501760,3682598911,JP -3682598912,3684696063,CN +3682598912,3684575268,CN +3684575269,3684575269,HK +3684575270,3684696063,CN 3684696064,3688366079,JP 3688366080,3689938943,CN 3689938944,3690070015,KR @@ -109901,7 +113623,7 @@ 3707207680,3707208703,BD 3707208704,3707209727,NZ 3707209728,3707211775,CN -3707211776,3707215871,ID +3707211776,3707215871,NZ 3707215872,3707217919,BD 3707217920,3707219967,ID 3707219968,3707222015,AU @@ -109934,20 +113656,30 @@ 3715743744,3715760127,JP 3715760128,3715891199,CN 3715891200,3716153343,HK -3716153344,3716170751,SG -3716170752,3716172287,JP +3716153344,3716171519,SG +3716171520,3716171775,JP +3716171776,3716172031,SG +3716172032,3716172287,JP 3716172288,3716173055,SG -3716173056,3716174335,JP -3716174336,3716175359,SG -3716175360,3716176895,JP +3716173056,3716173311,JP +3716173312,3716173567,SG +3716173568,3716173823,JP +3716173824,3716174079,SG +3716174080,3716174335,JP +3716174336,3716175615,SG +3716175616,3716176895,JP 3716176896,3716178175,SG -3716178176,3716178943,TH +3716178176,3716178943,JP 3716178944,3716179967,SG -3716179968,3716180991,JP -3716180992,3716181759,TH +3716179968,3716181759,JP 3716181760,3716182783,SG -3716182784,3716184575,TH -3716184576,3716185087,JP +3716182784,3716183295,JP +3716183296,3716183551,SG +3716183552,3716184063,JP +3716184064,3716184319,TH +3716184320,3716184575,JP +3716184576,3716184831,SG +3716184832,3716185087,JP 3716185088,3716186111,SG 3716186112,3716415487,CN 3716415488,3716431871,VN @@ -109983,7 +113715,9 @@ 3732832256,3732865023,CN 3732865024,3732930559,PH 3732930560,3733979135,CN -3733979136,3734503423,JP +3733979136,3734462975,JP +3734462976,3734463231,NC +3734463232,3734503423,JP 3734503424,3734765567,NZ 3734765568,3734896639,TW 3734896640,3735027711,JP @@ -110075,7 +113809,7 @@ 3749840896,3749841919,CN 3749841920,3749842943,AU 3749842944,3749843967,PH -3749843968,3749846015,AU +3749844992,3749846015,AU 3749846016,3749847039,IN 3749847040,3749855231,HK 3749855232,3749969919,KR diff --git a/src/config/geoip6 b/src/config/geoip6 index 94e13e255c..543ea105ab 100644 --- a/src/config/geoip6 +++ b/src/config/geoip6 @@ -1,21 +1,16 @@ -# Last updated based on January 5 2016 Maxmind GeoLite2 Country +# Last updated based on March 3 2016 Maxmind GeoLite2 Country # wget https://geolite.maxmind.com/download/geoip/database/GeoLite2-Country.mmdb.gz # gunzip GeoLite2-Country.mmdb.gz # python mmdb-convert.py GeoLite2-Country.mmdb +76:96:42:219::,76:96:42:219:ffff:ffff:ffff:ffff,US 600:8801:9400:580::,600:8801:9400:580::,US 2001:200::,2001:200::7fff:ffff:ffff:ffff:ffff,JP 2001:200:120::,2001:200:120:7fff:ffff:ffff:ffff:ffff,JP -2001:200:148::,2001:200:148:7fff:ffff:ffff:ffff:ffff,JP 2001:200:167::,2001:200:167:7fff:ffff:ffff:ffff:ffff,JP -2001:200:180::,2001:200:180:ffff:ffff:ffff:ffff:ffff,JP +2001:200:180:8000::,2001:200:180:ffff:ffff:ffff:ffff:ffff,JP 2001:200:1c0::,2001:200:1c0:7fff:ffff:ffff:ffff:ffff,JP -2001:200:601::,2001:200:601:7fff:ffff:ffff:ffff:ffff,AU -2001:200:905::,2001:200:905:7fff:ffff:ffff:ffff:ffff,JP -2001:208:3::,2001:208:3:7fff:ffff:ffff:ffff:ffff,SG 2001:208:5::,2001:208:5:7fff:ffff:ffff:ffff:ffff,SG -2001:218::,2001:218:e000:ffff:ffff:ffff:ffff:ffff,JP -2001:218:e001::,2001:218:e001:7fff:ffff:ffff:ffff:ffff,US -2001:218:e001:8000::,2001:218:ffff:ffff:ffff:ffff:ffff:ffff,JP +2001:218::,2001:218:ffff:ffff:ffff:ffff:ffff:ffff,JP 2001:220::,2001:220:ffff:ffff:ffff:ffff:ffff:ffff,KR 2001:230::,2001:230:ffff:ffff:ffff:ffff:ffff:ffff,KR 2001:238::,2001:238:ffff:ffff:ffff:ffff:ffff:ffff,TW @@ -80,69 +75,29 @@ 2001:418::,2001:418:ffff:ffff:ffff:ffff:ffff:ffff,US 2001:420::,2001:420:283f:ffff:ffff:ffff:ffff:ffff,US 2001:420:2840::,2001:420:2840:7fff:ffff:ffff:ffff:ffff,CA -2001:420:2840:8000::,2001:420:284c:12ff:ffff:ffff:ffff:ffff,US -2001:420:284c:1300::,2001:420:284c:13ff:ffff:ffff:ffff:ffff,CA -2001:420:284c:1400::,2001:420:4049:ffff:ffff:ffff:ffff:ffff,US -2001:420:404a::,2001:420:404a:7fff:ffff:ffff:ffff:ffff,GB -2001:420:404a:8000::,2001:420:4081:ffff:ffff:ffff:ffff:ffff,US -2001:420:4082::,2001:420:4082:7fff:ffff:ffff:ffff:ffff,GB -2001:420:4082:8000::,2001:420:4083:ffff:ffff:ffff:ffff:ffff,US +2001:420:2840:8000::,2001:420:4083:ffff:ffff:ffff:ffff:ffff,US 2001:420:4084::,2001:420:4084:7fff:ffff:ffff:ffff:ffff,GB -2001:420:4084:8000::,2001:420:4085:ffff:ffff:ffff:ffff:ffff,US -2001:420:4086::,2001:420:4086:7fff:ffff:ffff:ffff:ffff,GB -2001:420:4086:8000::,2001:420:44d9:ffff:ffff:ffff:ffff:ffff,US -2001:420:44da::,2001:420:44da:7fff:ffff:ffff:ffff:ffff,ES -2001:420:44da:8000::,2001:420:44ef:ffff:ffff:ffff:ffff:ffff,US -2001:420:44f0::,2001:420:44f0:7fff:ffff:ffff:ffff:ffff,FR -2001:420:44f0:8000::,2001:420:4c41:ffff:ffff:ffff:ffff:ffff,US -2001:420:4c42::,2001:420:4c42:7fff:ffff:ffff:ffff:ffff,SA -2001:420:4c42:8000::,2001:420:5040:ffff:ffff:ffff:ffff:ffff,US +2001:420:4084:8000::,2001:420:5040:ffff:ffff:ffff:ffff:ffff,US 2001:420:5041::,2001:420:5041:7fff:ffff:ffff:ffff:ffff,AU 2001:420:5041:8000::,2001:420:5042:ffff:ffff:ffff:ffff:ffff,US 2001:420:5043::,2001:420:5043:7fff:ffff:ffff:ffff:ffff,AU -2001:420:5043:8000::,2001:420:5044:ffff:ffff:ffff:ffff:ffff,US -2001:420:5045::,2001:420:5045:7fff:ffff:ffff:ffff:ffff,AU -2001:420:5045:8000::,2001:420:5046:ffff:ffff:ffff:ffff:ffff,US -2001:420:5047::,2001:420:5047:7fff:ffff:ffff:ffff:ffff,AU -2001:420:5047:8000::,2001:420:5049:ffff:ffff:ffff:ffff:ffff,US +2001:420:5043:8000::,2001:420:5049:ffff:ffff:ffff:ffff:ffff,US 2001:420:504a::,2001:420:504a:7fff:ffff:ffff:ffff:ffff,AU -2001:420:504a:8000::,2001:420:5441:ffff:ffff:ffff:ffff:ffff,US -2001:420:5442::,2001:420:5442:7fff:ffff:ffff:ffff:ffff,IN -2001:420:5442:8000::,2001:420:5442:ffff:ffff:ffff:ffff:ffff,US -2001:420:5443::,2001:420:5443:7fff:ffff:ffff:ffff:ffff,IN -2001:420:5443:8000::,2001:420:5504:ffff:ffff:ffff:ffff:ffff,US -2001:420:5505::,2001:420:5505:7fff:ffff:ffff:ffff:ffff,IN -2001:420:5505:8000::,2001:420:5882:ffff:ffff:ffff:ffff:ffff,US -2001:420:5883::,2001:420:5883:7fff:ffff:ffff:ffff:ffff,CN -2001:420:5883:8000::,2001:420:5894:ffff:ffff:ffff:ffff:ffff,US -2001:420:5895::,2001:420:5895:7fff:ffff:ffff:ffff:ffff,CN -2001:420:5895:8000::,2001:420:5a3f:ffff:ffff:ffff:ffff:ffff,US -2001:420:5a40::,2001:420:5a40:7fff:ffff:ffff:ffff:ffff,CN -2001:420:5a40:8000::,2001:420:5a44:11ff:ffff:ffff:ffff:ffff,US -2001:420:5a44:1200::,2001:420:5a44:12ff:ffff:ffff:ffff:ffff,CN -2001:420:5a44:1300::,2001:420:5c3f:ffff:ffff:ffff:ffff:ffff,US +2001:420:504a:8000::,2001:420:5899:ffff:ffff:ffff:ffff:ffff,US +2001:420:589a::,2001:420:589a:7fff:ffff:ffff:ffff:ffff,CN +2001:420:589a:8000::,2001:420:5c3f:ffff:ffff:ffff:ffff:ffff,US 2001:420:5c40::,2001:420:5c40:7fff:ffff:ffff:ffff:ffff,SG -2001:420:5c40:8000::,2001:420:5c40:ffff:ffff:ffff:ffff:ffff,US -2001:420:5c41::,2001:420:5c41:7fff:ffff:ffff:ffff:ffff,SG -2001:420:5c41:8000::,2001:420:5c41:ffff:ffff:ffff:ffff:ffff,US -2001:420:5c42::,2001:420:5c42:7fff:ffff:ffff:ffff:ffff,SG -2001:420:5c42:8000::,2001:420:5c43:ffff:ffff:ffff:ffff:ffff,US -2001:420:5c44::,2001:420:5c44:7fff:ffff:ffff:ffff:ffff,SG -2001:420:5c44:8000::,2001:420:5c46:ffff:ffff:ffff:ffff:ffff,US -2001:420:5c47::,2001:420:5c47:7fff:ffff:ffff:ffff:ffff,SG -2001:420:5c47:8000::,2001:420:5e40:11ff:ffff:ffff:ffff:ffff,US -2001:420:5e40:1200::,2001:420:5e40:12ff:ffff:ffff:ffff:ffff,JP -2001:420:5e40:1300::,2001:420:c0c0:ffff:ffff:ffff:ffff:ffff,US -2001:420:c0c1::,2001:420:c0c1:7fff:ffff:ffff:ffff:ffff,CH -2001:420:c0c1:8000::,2001:420:c0cf:ffff:ffff:ffff:ffff:ffff,US +2001:420:5c40:8000::,2001:420:5e3f:ffff:ffff:ffff:ffff:ffff,US +2001:420:5e40::,2001:420:5e40:7fff:ffff:ffff:ffff:ffff,JP +2001:420:5e40:8000::,2001:420:c0cf:ffff:ffff:ffff:ffff:ffff,US 2001:420:c0d0::,2001:420:c0d0:7fff:ffff:ffff:ffff:ffff,AU -2001:420:c0d0:8000::,2001:420:c0d3:ffff:ffff:ffff:ffff:ffff,US -2001:420:c0d4::,2001:420:c0d4:7fff:ffff:ffff:ffff:ffff,SG -2001:420:c0d4:8000::,2001:420:c0d7:ffff:ffff:ffff:ffff:ffff,US +2001:420:c0d0:8000::,2001:420:c0d7:ffff:ffff:ffff:ffff:ffff,US 2001:420:c0d8::,2001:420:c0d8:7fff:ffff:ffff:ffff:ffff,CN 2001:420:c0d8:8000::,2001:420:c0db:ffff:ffff:ffff:ffff:ffff,US 2001:420:c0dc::,2001:420:c0dc:7fff:ffff:ffff:ffff:ffff,JP -2001:420:c0dc:8000::,2001:420:ffff:ffff:ffff:ffff:ffff:ffff,US +2001:420:c0dc:8000::,2001:420:c0df:ffff:ffff:ffff:ffff:ffff,US +2001:420:c0e0::,2001:420:c0e0:7fff:ffff:ffff:ffff:ffff,IN +2001:420:c0e0:8000::,2001:420:ffff:ffff:ffff:ffff:ffff:ffff,US 2001:428::,2001:428:ffff:ffff:ffff:ffff:ffff:ffff,US 2001:430::,2001:430:ffff:ffff:ffff:ffff:ffff:ffff,US 2001:438::,2001:438:ffff:ffff:ffff:ffff:ffff:ffff,US @@ -159,66 +114,59 @@ 2001:468::,2001:468:ffff:ffff:ffff:ffff:ffff:ffff,US 2001:470::,2001:470:0:284::,US 2001:470:0:284::1,2001:470:0:284::1,AT -2001:470:0:284::2,2001:470:17:ffff:ffff:ffff:ffff:ffff,US -2001:470:18::,2001:470:18:7ff:ffff:ffff:ffff:ffff,CN -2001:470:18:800::,2001:470:18:ffff:ffff:ffff:ffff:ffff,US -2001:470:19::,2001:470:19:7fff:ffff:ffff:ffff:ffff,HK -2001:470:19:8000::,2001:470:1c:ff:ffff:ffff:ffff:ffff,US -2001:470:1c:100::,2001:470:1c:7ff:ffff:ffff:ffff:ffff,CA -2001:470:1c:800::,2001:470:1c:8ff:ffff:ffff:ffff:ffff,US -2001:470:1c:900::,2001:470:1c:bff:ffff:ffff:ffff:ffff,CA -2001:470:1c:c00::,2001:470:1c:ffff:ffff:ffff:ffff:ffff,US +2001:470:0:284::2,2001:470:5:317:ffff:ffff:ffff:ffff,US +2001:470:5:318::,2001:470:5:318:ffff:ffff:ffff:ffff,AR +2001:470:5:319::,2001:470:18:ffff:ffff:ffff:ffff:ffff,US +2001:470:19::,2001:470:19:7fff:ffff:ffff:ffff:ffff,CN +2001:470:19:8000::,2001:470:1b:ffff:ffff:ffff:ffff:ffff,US +2001:470:1c::,2001:470:1c:7fff:ffff:ffff:ffff:ffff,CA +2001:470:1c:8000::,2001:470:1c:ffff:ffff:ffff:ffff:ffff,US 2001:470:1d::,2001:470:1d:7fff:ffff:ffff:ffff:ffff,CA -2001:470:1d:8000::,2001:470:23:ffff:ffff:ffff:ffff:ffff,US -2001:470:24::,2001:470:24:7fff:ffff:ffff:ffff:ffff,TW -2001:470:24:8000::,2001:470:26:b6c:ffff:ffff:ffff:ffff,US +2001:470:1d:8000::,2001:470:26:65b:ffff:ffff:ffff:ffff,US +2001:470:26:65c::,2001:470:26:65c:ffff:ffff:ffff:ffff,CH +2001:470:26:65d::,2001:470:26:7ff:ffff:ffff:ffff:ffff,US +2001:470:26:800::,2001:470:26:b6c:ffff:ffff:ffff:ffff,CH 2001:470:26:b6d::,2001:470:26:b6d:ffff:ffff:ffff:ffff,AT -2001:470:26:b6e::,2001:470:27:1a5:ffff:ffff:ffff:ffff,US -2001:470:27:1a6::,2001:470:27:1a6:ffff:ffff:ffff:ffff,RU -2001:470:27:1a7::,2001:470:28:35:ffff:ffff:ffff:ffff,US +2001:470:26:b6e::,2001:470:26:fff:ffff:ffff:ffff:ffff,CH +2001:470:26:1000::,2001:470:26:ffff:ffff:ffff:ffff:ffff,US +2001:470:27::,2001:470:27:7fff:ffff:ffff:ffff:ffff,RU +2001:470:27:8000::,2001:470:28:35:ffff:ffff:ffff:ffff,US 2001:470:28:36::,2001:470:28:36:ffff:ffff:ffff:ffff,SE 2001:470:28:37::,2001:470:28:1a5:ffff:ffff:ffff:ffff,US 2001:470:28:1a6::,2001:470:28:1a6:ffff:ffff:ffff:ffff,RU -2001:470:28:1a7::,2001:470:28:9c1:ffff:ffff:ffff:ffff,US +2001:470:28:1a7::,2001:470:28:2df:ffff:ffff:ffff:ffff,US +2001:470:28:2e0::,2001:470:28:2e0:ffff:ffff:ffff:ffff,SE +2001:470:28:2e1::,2001:470:28:9c1:ffff:ffff:ffff:ffff,US 2001:470:28:9c2::,2001:470:28:9c2:ffff:ffff:ffff:ffff,SE 2001:470:28:9c3::,2001:470:28:a2b:ffff:ffff:ffff:ffff,US 2001:470:28:a2c::,2001:470:28:a2c:ffff:ffff:ffff:ffff,SE -2001:470:28:a2d::,2001:470:3c:ffff:ffff:ffff:ffff:ffff,US -2001:470:3d::,2001:470:3d:7fff:ffff:ffff:ffff:ffff,PH -2001:470:3d:8000::,2001:470:6d:ffff:ffff:ffff:ffff:ffff,US -2001:470:6e::,2001:470:6e:3ff:ffff:ffff:ffff:ffff,CZ -2001:470:6e:400::,2001:470:6f:49e:ffff:ffff:ffff:ffff,US +2001:470:28:a2d::,2001:470:6c:ffff:ffff:ffff:ffff:ffff,US +2001:470:6d::,2001:470:6d:7fff:ffff:ffff:ffff:ffff,RU +2001:470:6d:8000::,2001:470:6e:ffff:ffff:ffff:ffff:ffff,US +2001:470:6f::,2001:470:6f:49e:ffff:ffff:ffff:ffff,CZ 2001:470:6f:49f::,2001:470:6f:49f:ffff:ffff:ffff:ffff,SK -2001:470:6f:4a0::,2001:470:70:6ff:ffff:ffff:ffff:ffff,US -2001:470:70:700::,2001:470:70:7ff:ffff:ffff:ffff:ffff,RU -2001:470:70:800::,2001:470:70:ffff:ffff:ffff:ffff:ffff,US -2001:470:71::,2001:470:71:5ff:ffff:ffff:ffff:ffff,UA +2001:470:6f:4a0::,2001:470:6f:7fff:ffff:ffff:ffff:ffff,CZ +2001:470:6f:8000::,2001:470:71:5ff:ffff:ffff:ffff:ffff,US 2001:470:71:600::,2001:470:71:600:ffff:ffff:ffff:ffff,PL -2001:470:71:601::,2001:470:71:60b:ffff:ffff:ffff:ffff,UA +2001:470:71:601::,2001:470:71:60b:ffff:ffff:ffff:ffff,US 2001:470:71:60c::,2001:470:71:60c:ffff:ffff:ffff:ffff,PL -2001:470:71:60d::,2001:470:71:7fff:ffff:ffff:ffff:ffff,UA -2001:470:71:8000::,2001:470:d2:ffff:ffff:ffff:ffff:ffff,US +2001:470:71:60d::,2001:470:d2:ffff:ffff:ffff:ffff:ffff,US 2001:470:d3::,2001:470:d3:7fff:ffff:ffff:ffff:ffff,DE -2001:470:d3:8000::,2001:470:1857:ffff:ffff:ffff:ffff:ffff,US -2001:470:1858::,2001:470:1858:7fff:ffff:ffff:ffff:ffff,GB -2001:470:1858:8000::,2001:470:18c1:7fff:ffff:ffff:ffff:ffff,US -2001:470:18c1:8000::,2001:470:18c1:ffff:ffff:ffff:ffff:ffff,GB -2001:470:18c2::,2001:470:1f07:ffff:ffff:ffff:ffff:ffff,US -2001:470:1f08::,2001:470:1f08:1ff:ffff:ffff:ffff:ffff,GB -2001:470:1f08:200::,2001:470:1f08:415::1,US -2001:470:1f08:415::2,2001:470:1f08:415::2,GB -2001:470:1f08:415::3,2001:470:1f08:bff:ffff:ffff:ffff:ffff,US -2001:470:1f08:c00::,2001:470:1f08:dff:ffff:ffff:ffff:ffff,GB -2001:470:1f08:e00::,2001:470:1f08:fff:ffff:ffff:ffff:ffff,US -2001:470:1f08:1000::,2001:470:1f08:11ff:ffff:ffff:ffff:ffff,GB -2001:470:1f08:1200::,2001:470:1f08:13ff:ffff:ffff:ffff:ffff,RU -2001:470:1f08:1400::,2001:470:1f08:17ff:ffff:ffff:ffff:ffff,US -2001:470:1f08:1800::,2001:470:1f08:1fff:ffff:ffff:ffff:ffff,GB -2001:470:1f08:2000::,2001:470:1f08:ffff:ffff:ffff:ffff:ffff,US -2001:470:1f09::,2001:470:1f09:7fff:ffff:ffff:ffff:ffff,GB -2001:470:1f09:8000::,2001:470:1f0a:7ff:ffff:ffff:ffff:ffff,US -2001:470:1f0a:800::,2001:470:1f0a:bff:ffff:ffff:ffff:ffff,RU -2001:470:1f0a:c00::,2001:470:1f0b:30e:ffff:ffff:ffff:ffff,US +2001:470:d3:8000::,2001:470:1eff:ffff:ffff:ffff:ffff:ffff,US +2001:470:1f00::,2001:470:1f00:7fff:ffff:ffff:ffff:ffff,AU +2001:470:1f00:8000::,2001:470:1f04:fff:ffff:ffff:ffff:ffff,US +2001:470:1f04:1000::,2001:470:1f04:1fff:ffff:ffff:ffff:ffff,JP +2001:470:1f04:2000::,2001:470:1f07:ffff:ffff:ffff:ffff:ffff,US +2001:470:1f08::,2001:470:1f08:fff:ffff:ffff:ffff:ffff,GB +2001:470:1f08:1000::,2001:470:1f08:ffff:ffff:ffff:ffff:ffff,US +2001:470:1f09::,2001:470:1f09:3ff:ffff:ffff:ffff:ffff,GB +2001:470:1f09:400::,2001:470:1f09:414:ffff:ffff:ffff:ffff,US +2001:470:1f09:415::,2001:470:1f09:415:ffff:ffff:ffff:ffff,GB +2001:470:1f09:416::,2001:470:1f09:7ff:ffff:ffff:ffff:ffff,US +2001:470:1f09:800::,2001:470:1f09:1fff:ffff:ffff:ffff:ffff,GB +2001:470:1f09:2000::,2001:470:1f09:ffff:ffff:ffff:ffff:ffff,US +2001:470:1f0a::,2001:470:1f0a:7fff:ffff:ffff:ffff:ffff,RU +2001:470:1f0a:8000::,2001:470:1f0b:30e:ffff:ffff:ffff:ffff,US 2001:470:1f0b:30f::,2001:470:1f0b:30f:ffff:ffff:ffff:ffff,DE 2001:470:1f0b:310::,2001:470:1f0b:4b0:ffff:ffff:ffff:ffff,US 2001:470:1f0b:4b1::,2001:470:1f0b:4b1:ffff:ffff:ffff:ffff,UA @@ -226,14 +174,11 @@ 2001:470:1f0b:77a::,2001:470:1f0b:77a:ffff:ffff:ffff:ffff,DE 2001:470:1f0b:77b::,2001:470:1f0b:784:ffff:ffff:ffff:ffff,US 2001:470:1f0b:785::,2001:470:1f0b:785:ffff:ffff:ffff:ffff,PL -2001:470:1f0b:786::,2001:470:1f12:bff:ffff:ffff:ffff:ffff,US -2001:470:1f12:c00::,2001:470:1f12:fff:ffff:ffff:ffff:ffff,FR -2001:470:1f12:1000::,2001:470:1f13:7ff:ffff:ffff:ffff:ffff,US -2001:470:1f13:800::,2001:470:1f13:bff:ffff:ffff:ffff:ffff,FR -2001:470:1f13:c00::,2001:470:1f13:fff:ffff:ffff:ffff:ffff,GB -2001:470:1f13:1000::,2001:470:1f13:11ff:ffff:ffff:ffff:ffff,US -2001:470:1f13:1200::,2001:470:1f13:12ff:ffff:ffff:ffff:ffff,FR -2001:470:1f13:1300::,2001:470:1f15:44f:ffff:ffff:ffff:ffff,US +2001:470:1f0b:786::,2001:470:1f11:ffff:ffff:ffff:ffff:ffff,US +2001:470:1f12::,2001:470:1f12:7fff:ffff:ffff:ffff:ffff,HU +2001:470:1f12:8000::,2001:470:1f12:ffff:ffff:ffff:ffff:ffff,US +2001:470:1f13::,2001:470:1f13:7fff:ffff:ffff:ffff:ffff,FR +2001:470:1f13:8000::,2001:470:1f15:44f:ffff:ffff:ffff:ffff,US 2001:470:1f15:450::,2001:470:1f15:450:ffff:ffff:ffff:ffff,NL 2001:470:1f15:451::,2001:470:1f15:5ab:ffff:ffff:ffff:ffff,US 2001:470:1f15:5ac::,2001:470:1f15:5ac:ffff:ffff:ffff:ffff,NL @@ -241,209 +186,57 @@ 2001:470:1f15:9c6::,2001:470:1f15:9c6:ffff:ffff:ffff:ffff,AT 2001:470:1f15:9c7::,2001:470:1f15:a5f:ffff:ffff:ffff:ffff,US 2001:470:1f15:a60::,2001:470:1f15:a60:ffff:ffff:ffff:ffff,NL -2001:470:1f15:a61::,2001:470:1f15:ffff:ffff:ffff:ffff:ffff,US -2001:470:1f16::,2001:470:1f16:7fff:ffff:ffff:ffff:ffff,CA -2001:470:1f16:8000::,2001:470:1f16:ffff:ffff:ffff:ffff:ffff,US -2001:470:1f17::,2001:470:1f17:7fff:ffff:ffff:ffff:ffff,CA -2001:470:1f17:8000::,2001:470:1f1b:ffff:ffff:ffff:ffff:ffff,US -2001:470:1f1c::,2001:470:1f1c:7fff:ffff:ffff:ffff:ffff,GB -2001:470:1f1c:8000::,2001:470:1f1d:195:ffff:ffff:ffff:ffff,US +2001:470:1f15:a61::,2001:470:1f17:ff:ffff:ffff:ffff:ffff,US +2001:470:1f17:100::,2001:470:1f17:1ff:ffff:ffff:ffff:ffff,CA +2001:470:1f17:200::,2001:470:1f1a:ffff:ffff:ffff:ffff:ffff,US +2001:470:1f1b::,2001:470:1f1b:ff:ffff:ffff:ffff:ffff,HU +2001:470:1f1b:100::,2001:470:1f1d:195:ffff:ffff:ffff:ffff,US 2001:470:1f1d:196::,2001:470:1f1d:196:ffff:ffff:ffff:ffff,GB -2001:470:1f1d:197::,2001:470:2050:ffff:ffff:ffff:ffff:ffff,US -2001:470:2051::,2001:470:2051:7fff:ffff:ffff:ffff:ffff,RO -2001:470:2051:8000::,2001:470:207f:ffff:ffff:ffff:ffff:ffff,US +2001:470:1f1d:197::,2001:470:207f:ffff:ffff:ffff:ffff:ffff,US 2001:470:2080::,2001:470:2080:7fff:ffff:ffff:ffff:ffff,UA 2001:470:2080:8000::,2001:470:2092:ffff:ffff:ffff:ffff:ffff,US 2001:470:2093::,2001:470:2093:7fff:ffff:ffff:ffff:ffff,SI 2001:470:2093:8000::,2001:470:3028:ffff:ffff:ffff:ffff:ffff,US 2001:470:3029::,2001:470:3029:7fff:ffff:ffff:ffff:ffff,CA -2001:470:3029:8000::,2001:470:302d:ffff:ffff:ffff:ffff:ffff,US -2001:470:302e::,2001:470:302e:7fff:ffff:ffff:ffff:ffff,CA -2001:470:302e:8000::,2001:470:3049:ffff:ffff:ffff:ffff:ffff,US -2001:470:304a::,2001:470:304a:7fff:ffff:ffff:ffff:ffff,MX -2001:470:304a:8000::,2001:470:3051:7fff:ffff:ffff:ffff:ffff,US -2001:470:3051:8000::,2001:470:3051:ffff:ffff:ffff:ffff:ffff,CA -2001:470:3052::,2001:470:48ab:ffff:ffff:ffff:ffff:ffff,US -2001:470:48ac::,2001:470:48ac:7fff:ffff:ffff:ffff:ffff,AU -2001:470:48ac:8000::,2001:470:48d0:ffff:ffff:ffff:ffff:ffff,US -2001:470:48d1::,2001:470:48d1:7fff:ffff:ffff:ffff:ffff,CA -2001:470:48d1:8000::,2001:470:49e5:7fff:ffff:ffff:ffff:ffff,US +2001:470:3029:8000::,2001:470:49e5:7fff:ffff:ffff:ffff:ffff,US 2001:470:49e5:8000::,2001:470:49e5:ffff:ffff:ffff:ffff:ffff,CN -2001:470:49e6::,2001:470:507c:ffff:ffff:ffff:ffff:ffff,US -2001:470:507d::,2001:470:507d:7fff:ffff:ffff:ffff:ffff,UA -2001:470:507d:8000::,2001:470:52ba:ffff:ffff:ffff:ffff:ffff,US -2001:470:52bb::,2001:470:52bb:7fff:ffff:ffff:ffff:ffff,UA -2001:470:52bb:8000::,2001:470:52c5:ffff:ffff:ffff:ffff:ffff,US -2001:470:52c6::,2001:470:52c6:7fff:ffff:ffff:ffff:ffff,DE -2001:470:52c6:8000::,2001:470:532d:ffff:ffff:ffff:ffff:ffff,US -2001:470:532e::,2001:470:532e:7fff:ffff:ffff:ffff:ffff,RU -2001:470:532e:8000::,2001:470:5803:7fff:ffff:ffff:ffff:ffff,US -2001:470:5803:8000::,2001:470:5803:ffff:ffff:ffff:ffff:ffff,CZ -2001:470:5804::,2001:470:5853:ffff:ffff:ffff:ffff:ffff,US -2001:470:5854::,2001:470:5854:7fff:ffff:ffff:ffff:ffff,CZ -2001:470:5854:8000::,2001:470:591a:ffff:ffff:ffff:ffff:ffff,US +2001:470:49e6::,2001:470:587d:ffff:ffff:ffff:ffff:ffff,US +2001:470:587e::,2001:470:587e:7fff:ffff:ffff:ffff:ffff,CZ +2001:470:587e:8000::,2001:470:591a:ffff:ffff:ffff:ffff:ffff,US 2001:470:591b::,2001:470:591b:7fff:ffff:ffff:ffff:ffff,CZ 2001:470:591b:8000::,2001:470:591c:ffff:ffff:ffff:ffff:ffff,US 2001:470:591d::,2001:470:591d:7fff:ffff:ffff:ffff:ffff,CZ -2001:470:591d:8000::,2001:470:5948:ffff:ffff:ffff:ffff:ffff,US -2001:470:5949::,2001:470:5949:7fff:ffff:ffff:ffff:ffff,CZ -2001:470:5949:8000::,2001:470:598f:ffff:ffff:ffff:ffff:ffff,US -2001:470:5990::,2001:470:5990:7fff:ffff:ffff:ffff:ffff,CZ -2001:470:5990:8000::,2001:470:59c0:ffff:ffff:ffff:ffff:ffff,US -2001:470:59c1::,2001:470:59c1:7fff:ffff:ffff:ffff:ffff,CZ -2001:470:59c1:8000::,2001:470:59d7:ffff:ffff:ffff:ffff:ffff,US +2001:470:591d:8000::,2001:470:59d7:ffff:ffff:ffff:ffff:ffff,US 2001:470:59d8::,2001:470:59d8:7fff:ffff:ffff:ffff:ffff,CZ 2001:470:59d8:8000::,2001:470:5a34:ffff:ffff:ffff:ffff:ffff,US 2001:470:5a35::,2001:470:5a35:ffff:ffff:ffff:ffff:ffff,CZ 2001:470:5a36::,2001:470:5a39:ffff:ffff:ffff:ffff:ffff,US 2001:470:5a3a::,2001:470:5a3a:ffff:ffff:ffff:ffff:ffff,CZ -2001:470:5a3b::,2001:470:60a2:ffff:ffff:ffff:ffff:ffff,US -2001:470:60a3::,2001:470:60a3:7fff:ffff:ffff:ffff:ffff,BY -2001:470:60a3:8000::,2001:470:60f4:7fff:ffff:ffff:ffff:ffff,US -2001:470:60f4:8000::,2001:470:60f4:ffff:ffff:ffff:ffff:ffff,PL -2001:470:60f5::,2001:470:613f:ffff:ffff:ffff:ffff:ffff,US -2001:470:6140::,2001:470:6140:7fff:ffff:ffff:ffff:ffff,PL -2001:470:6140:8000::,2001:470:618d:ffff:ffff:ffff:ffff:ffff,US -2001:470:618e::,2001:470:618e:7fff:ffff:ffff:ffff:ffff,PL -2001:470:618e:8000::,2001:470:619f:ffff:ffff:ffff:ffff:ffff,US -2001:470:61a0::,2001:470:61a0:7fff:ffff:ffff:ffff:ffff,RU -2001:470:61a0:8000::,2001:470:6228:ffff:ffff:ffff:ffff:ffff,US -2001:470:6229::,2001:470:6229:7fff:ffff:ffff:ffff:ffff,PL -2001:470:6229:8000::,2001:470:6808:7fff:ffff:ffff:ffff:ffff,US -2001:470:6808:8000::,2001:470:6808:ffff:ffff:ffff:ffff:ffff,GB -2001:470:6809::,2001:470:688b:ffff:ffff:ffff:ffff:ffff,US -2001:470:688c::,2001:470:688c:7fff:ffff:ffff:ffff:ffff,GB -2001:470:688c:8000::,2001:470:68a5:ffff:ffff:ffff:ffff:ffff,US -2001:470:68a6::,2001:470:68a6:7fff:ffff:ffff:ffff:ffff,ES -2001:470:68a6:8000::,2001:470:68df:ffff:ffff:ffff:ffff:ffff,US -2001:470:68e0::,2001:470:68e0:7fff:ffff:ffff:ffff:ffff,IL -2001:470:68e0:8000::,2001:470:68e9:ffff:ffff:ffff:ffff:ffff,US -2001:470:68ea::,2001:470:68ea:7fff:ffff:ffff:ffff:ffff,GB -2001:470:68ea:8000::,2001:470:6914:ffff:ffff:ffff:ffff:ffff,US -2001:470:6915::,2001:470:6915:7fff:ffff:ffff:ffff:ffff,ES -2001:470:6915:8000::,2001:470:6924:ffff:ffff:ffff:ffff:ffff,US +2001:470:5a3b::,2001:470:5a80:ffff:ffff:ffff:ffff:ffff,US +2001:470:5a81::,2001:470:5a81:ffff:ffff:ffff:ffff:ffff,CZ +2001:470:5a82::,2001:470:6924:ffff:ffff:ffff:ffff:ffff,US 2001:470:6925::,2001:470:6925:7fff:ffff:ffff:ffff:ffff,NL -2001:470:6925:8000::,2001:470:6978:ffff:ffff:ffff:ffff:ffff,US -2001:470:6979::,2001:470:6979:7fff:ffff:ffff:ffff:ffff,ES -2001:470:6979:8000::,2001:470:6a20:ffff:ffff:ffff:ffff:ffff,US -2001:470:6a21::,2001:470:6a21:7fff:ffff:ffff:ffff:ffff,GB -2001:470:6a21:8000::,2001:470:6a62:ffff:ffff:ffff:ffff:ffff,US -2001:470:6a63::,2001:470:6a63:7fff:ffff:ffff:ffff:ffff,GB -2001:470:6a63:8000::,2001:470:6af6:ffff:ffff:ffff:ffff:ffff,US -2001:470:6af7::,2001:470:6af7:7fff:ffff:ffff:ffff:ffff,GB -2001:470:6af7:8000::,2001:470:6b28:ffff:ffff:ffff:ffff:ffff,US -2001:470:6b29::,2001:470:6b29:7fff:ffff:ffff:ffff:ffff,GB -2001:470:6b29:8000::,2001:470:6b2e:ffff:ffff:ffff:ffff:ffff,US -2001:470:6b2f::,2001:470:6b2f:7fff:ffff:ffff:ffff:ffff,GB -2001:470:6b2f:8000::,2001:470:6b38:ffff:ffff:ffff:ffff:ffff,US +2001:470:6925:8000::,2001:470:6b38:ffff:ffff:ffff:ffff:ffff,US 2001:470:6b39::,2001:470:6b39:7fff:ffff:ffff:ffff:ffff,GB -2001:470:6b39:8000::,2001:470:6b76:ffff:ffff:ffff:ffff:ffff,US -2001:470:6b77::,2001:470:6b77:7fff:ffff:ffff:ffff:ffff,GB -2001:470:6b77:8000::,2001:470:6bba:ffff:ffff:ffff:ffff:ffff,US -2001:470:6bbb::,2001:470:6bbb:7fff:ffff:ffff:ffff:ffff,GB -2001:470:6bbb:8000::,2001:470:6bd1:ffff:ffff:ffff:ffff:ffff,US -2001:470:6bd2::,2001:470:6bd2:7fff:ffff:ffff:ffff:ffff,GB -2001:470:6bd2:8000::,2001:470:6bee:7fff:ffff:ffff:ffff:ffff,US -2001:470:6bee:8000::,2001:470:6bee:ffff:ffff:ffff:ffff:ffff,IN -2001:470:6bef::,2001:470:6c0d:ffff:ffff:ffff:ffff:ffff,US +2001:470:6b39:8000::,2001:470:6c0d:ffff:ffff:ffff:ffff:ffff,US 2001:470:6c0e::,2001:470:6c0e:7fff:ffff:ffff:ffff:ffff,GB -2001:470:6c0e:8000::,2001:470:6c1b:ffff:ffff:ffff:ffff:ffff,US -2001:470:6c1c::,2001:470:6c1c:7fff:ffff:ffff:ffff:ffff,GB -2001:470:6c1c:8000::,2001:470:6c5a:ffff:ffff:ffff:ffff:ffff,US -2001:470:6c5b::,2001:470:6c5b:7fff:ffff:ffff:ffff:ffff,GB -2001:470:6c5b:8000::,2001:470:6c7f:ffff:ffff:ffff:ffff:ffff,US -2001:470:6c80::,2001:470:6c80:7fff:ffff:ffff:ffff:ffff,RU -2001:470:6c80:8000::,2001:470:6c8e:ffff:ffff:ffff:ffff:ffff,US -2001:470:6c8f::,2001:470:6c8f:7fff:ffff:ffff:ffff:ffff,GB -2001:470:6c8f:8000::,2001:470:6c96:ffff:ffff:ffff:ffff:ffff,US -2001:470:6c97::,2001:470:6c97:7fff:ffff:ffff:ffff:ffff,RU -2001:470:6c97:8000::,2001:470:6cee:ffff:ffff:ffff:ffff:ffff,US -2001:470:6cef::,2001:470:6cef:7fff:ffff:ffff:ffff:ffff,ES -2001:470:6cef:8000::,2001:470:6d37:ffff:ffff:ffff:ffff:ffff,US -2001:470:6d38::,2001:470:6d38:7fff:ffff:ffff:ffff:ffff,GB -2001:470:6d38:8000::,2001:470:6d44:ffff:ffff:ffff:ffff:ffff,US -2001:470:6d45::,2001:470:6d45:7fff:ffff:ffff:ffff:ffff,GB -2001:470:6d45:8000::,2001:470:6d54:ffff:ffff:ffff:ffff:ffff,US -2001:470:6d55::,2001:470:6d55:7fff:ffff:ffff:ffff:ffff,GB -2001:470:6d55:8000::,2001:470:6d5b:ffff:ffff:ffff:ffff:ffff,US -2001:470:6d5c::,2001:470:6d5c:7fff:ffff:ffff:ffff:ffff,GB -2001:470:6d5c:8000::,2001:470:7000:ffff:ffff:ffff:ffff:ffff,US -2001:470:7001::,2001:470:7001:7fff:ffff:ffff:ffff:ffff,DE -2001:470:7001:8000::,2001:470:700d:ffff:ffff:ffff:ffff:ffff,US -2001:470:700e::,2001:470:700e:7fff:ffff:ffff:ffff:ffff,DE -2001:470:700e:8000::,2001:470:7069:ffff:ffff:ffff:ffff:ffff,US -2001:470:706a::,2001:470:706a:7fff:ffff:ffff:ffff:ffff,DE -2001:470:706a:8000::,2001:470:7073:7fff:ffff:ffff:ffff:ffff,US -2001:470:7073:8000::,2001:470:7073:ffff:ffff:ffff:ffff:ffff,DE -2001:470:7074::,2001:470:70a1:7fff:ffff:ffff:ffff:ffff,US +2001:470:6c0e:8000::,2001:470:70a1:7fff:ffff:ffff:ffff:ffff,US 2001:470:70a1:8000::,2001:470:70a1:ffff:ffff:ffff:ffff:ffff,RU -2001:470:70a2::,2001:470:70a7:ffff:ffff:ffff:ffff:ffff,US -2001:470:70a8::,2001:470:70a8:7fff:ffff:ffff:ffff:ffff,DE -2001:470:70a8:8000::,2001:470:70aa:ffff:ffff:ffff:ffff:ffff,US +2001:470:70a2::,2001:470:70aa:ffff:ffff:ffff:ffff:ffff,US 2001:470:70ab::,2001:470:70ab:7fff:ffff:ffff:ffff:ffff,DE 2001:470:70ab:8000::,2001:470:710f:ffff:ffff:ffff:ffff:ffff,US 2001:470:7110::,2001:470:7110:7fff:ffff:ffff:ffff:ffff,RU 2001:470:7110:8000::,2001:470:7170:ffff:ffff:ffff:ffff:ffff,US 2001:470:7171::,2001:470:7171:ffff:ffff:ffff:ffff:ffff,DE -2001:470:7172::,2001:470:7179:ffff:ffff:ffff:ffff:ffff,US -2001:470:717a::,2001:470:717a:7fff:ffff:ffff:ffff:ffff,DE -2001:470:717a:8000::,2001:470:7192:ffff:ffff:ffff:ffff:ffff,US -2001:470:7193::,2001:470:7193:7fff:ffff:ffff:ffff:ffff,DE -2001:470:7193:8000::,2001:470:71d4:ffff:ffff:ffff:ffff:ffff,US -2001:470:71d5::,2001:470:71d5:7fff:ffff:ffff:ffff:ffff,UA -2001:470:71d5:8000::,2001:470:7280:ffff:ffff:ffff:ffff:ffff,US -2001:470:7281::,2001:470:7281:7fff:ffff:ffff:ffff:ffff,DE -2001:470:7281:8000::,2001:470:7286:ffff:ffff:ffff:ffff:ffff,US +2001:470:7172::,2001:470:7286:ffff:ffff:ffff:ffff:ffff,US 2001:470:7287::,2001:470:7287:ffff:ffff:ffff:ffff:ffff,PL -2001:470:7288::,2001:470:72bd:ffff:ffff:ffff:ffff:ffff,US -2001:470:72be::,2001:470:72be:7fff:ffff:ffff:ffff:ffff,DE -2001:470:72be:8000::,2001:470:7309:ffff:ffff:ffff:ffff:ffff,US +2001:470:7288::,2001:470:7309:ffff:ffff:ffff:ffff:ffff,US 2001:470:730a::,2001:470:730a:7fff:ffff:ffff:ffff:ffff,DE -2001:470:730a:8000::,2001:470:7368:ffff:ffff:ffff:ffff:ffff,US -2001:470:7369::,2001:470:7369:7fff:ffff:ffff:ffff:ffff,TR -2001:470:7369:8000::,2001:470:7383:ffff:ffff:ffff:ffff:ffff,US -2001:470:7384::,2001:470:7384:7fff:ffff:ffff:ffff:ffff,BG -2001:470:7384:8000::,2001:470:73d1:ffff:ffff:ffff:ffff:ffff,US -2001:470:73d2::,2001:470:73d2:7fff:ffff:ffff:ffff:ffff,DE -2001:470:73d2:8000::,2001:470:742b:7fff:ffff:ffff:ffff:ffff,US -2001:470:742b:8000::,2001:470:742b:ffff:ffff:ffff:ffff:ffff,RU -2001:470:742c::,2001:470:7479:ffff:ffff:ffff:ffff:ffff,US -2001:470:747a::,2001:470:747a:7fff:ffff:ffff:ffff:ffff,DE -2001:470:747a:8000::,2001:470:74b8:ffff:ffff:ffff:ffff:ffff,US -2001:470:74b9::,2001:470:74b9:7fff:ffff:ffff:ffff:ffff,RS -2001:470:74b9:8000::,2001:470:74e0:ffff:ffff:ffff:ffff:ffff,US +2001:470:730a:8000::,2001:470:74e0:ffff:ffff:ffff:ffff:ffff,US 2001:470:74e1::,2001:470:74e1:7fff:ffff:ffff:ffff:ffff,DE -2001:470:74e1:8000::,2001:470:7552:ffff:ffff:ffff:ffff:ffff,US -2001:470:7553::,2001:470:7553:7fff:ffff:ffff:ffff:ffff,DE -2001:470:7553:8000::,2001:470:7563:7fff:ffff:ffff:ffff:ffff,US -2001:470:7563:8000::,2001:470:7563:ffff:ffff:ffff:ffff:ffff,UA -2001:470:7564::,2001:470:759e:ffff:ffff:ffff:ffff:ffff,US -2001:470:759f::,2001:470:759f:7fff:ffff:ffff:ffff:ffff,DE -2001:470:759f:8000::,2001:470:75c1:ffff:ffff:ffff:ffff:ffff,US -2001:470:75c2::,2001:470:75c2:7fff:ffff:ffff:ffff:ffff,DE -2001:470:75c2:8000::,2001:470:75c2:ffff:ffff:ffff:ffff:ffff,US -2001:470:75c3::,2001:470:75c3:7fff:ffff:ffff:ffff:ffff,DE -2001:470:75c3:8000::,2001:470:75f0:ffff:ffff:ffff:ffff:ffff,US -2001:470:75f1::,2001:470:75f1:7fff:ffff:ffff:ffff:ffff,DE -2001:470:75f1:8000::,2001:470:7804:ffff:ffff:ffff:ffff:ffff,US -2001:470:7805::,2001:470:7805:7fff:ffff:ffff:ffff:ffff,NL -2001:470:7805:8000::,2001:470:7859:ffff:ffff:ffff:ffff:ffff,US +2001:470:74e1:8000::,2001:470:7859:ffff:ffff:ffff:ffff:ffff,US 2001:470:785a::,2001:470:785a:ffff:ffff:ffff:ffff:ffff,AT -2001:470:785b::,2001:470:78ab:ffff:ffff:ffff:ffff:ffff,US -2001:470:78ac::,2001:470:78ac:7fff:ffff:ffff:ffff:ffff,NL -2001:470:78ac:8000::,2001:470:78db:ffff:ffff:ffff:ffff:ffff,US -2001:470:78dc::,2001:470:78dc:7fff:ffff:ffff:ffff:ffff,NL -2001:470:78dc:8000::,2001:470:78e3:ffff:ffff:ffff:ffff:ffff,US -2001:470:78e4::,2001:470:78e4:7fff:ffff:ffff:ffff:ffff,NL -2001:470:78e4:8000::,2001:470:78e8:ffff:ffff:ffff:ffff:ffff,US -2001:470:78e9::,2001:470:78e9:7fff:ffff:ffff:ffff:ffff,LV -2001:470:78e9:8000::,2001:470:790c:ffff:ffff:ffff:ffff:ffff,US -2001:470:790d::,2001:470:790d:7fff:ffff:ffff:ffff:ffff,NL -2001:470:790d:8000::,2001:470:79ff:ffff:ffff:ffff:ffff:ffff,US -2001:470:7a00::,2001:470:7a00:7fff:ffff:ffff:ffff:ffff,NL -2001:470:7a00:8000::,2001:470:7a91:ffff:ffff:ffff:ffff:ffff,US -2001:470:7a92::,2001:470:7a92:7fff:ffff:ffff:ffff:ffff,DE -2001:470:7a92:8000::,2001:470:7a99:ffff:ffff:ffff:ffff:ffff,US +2001:470:785b::,2001:470:7a99:ffff:ffff:ffff:ffff:ffff,US 2001:470:7a9a::,2001:470:7a9a:ffff:ffff:ffff:ffff:ffff,NL 2001:470:7a9b::,2001:470:7ba6:ffff:ffff:ffff:ffff:ffff,US 2001:470:7ba7::,2001:470:7ba7:7fff:ffff:ffff:ffff:ffff,NL @@ -451,283 +244,65 @@ 2001:470:7bb0::,2001:470:7bb0:7fff:ffff:ffff:ffff:ffff,BE 2001:470:7bb0:8000::,2001:470:7bbf:ffff:ffff:ffff:ffff:ffff,US 2001:470:7bc0::,2001:470:7bc0:ffff:ffff:ffff:ffff:ffff,NL -2001:470:7bc1::,2001:470:7c01:ffff:ffff:ffff:ffff:ffff,US -2001:470:7c02::,2001:470:7c02:7fff:ffff:ffff:ffff:ffff,NL -2001:470:7c02:8000::,2001:470:7c14:ffff:ffff:ffff:ffff:ffff,US -2001:470:7c15::,2001:470:7c15:7fff:ffff:ffff:ffff:ffff,DE -2001:470:7c15:8000::,2001:470:7c4f:ffff:ffff:ffff:ffff:ffff,US +2001:470:7bc1::,2001:470:7c4f:ffff:ffff:ffff:ffff:ffff,US 2001:470:7c50::,2001:470:7c50:7fff:ffff:ffff:ffff:ffff,NL -2001:470:7c50:8000::,2001:470:7ca1:7fff:ffff:ffff:ffff:ffff,US -2001:470:7ca1:8000::,2001:470:7ca1:ffff:ffff:ffff:ffff:ffff,NL -2001:470:7ca2::,2001:470:7d16:ffff:ffff:ffff:ffff:ffff,US -2001:470:7d17::,2001:470:7d17:7fff:ffff:ffff:ffff:ffff,NL -2001:470:7d17:8000::,2001:470:7d59:ffff:ffff:ffff:ffff:ffff,US -2001:470:7d5a::,2001:470:7d5a:7fff:ffff:ffff:ffff:ffff,NL -2001:470:7d5a:8000::,2001:470:8091:ffff:ffff:ffff:ffff:ffff,US +2001:470:7c50:8000::,2001:470:8091:ffff:ffff:ffff:ffff:ffff,US 2001:470:8092::,2001:470:8092:7fff:ffff:ffff:ffff:ffff,CN 2001:470:8092:8000::,2001:470:80b6:ffff:ffff:ffff:ffff:ffff,US 2001:470:80b7::,2001:470:80b7:7fff:ffff:ffff:ffff:ffff,CN -2001:470:80b7:8000::,2001:470:80ec:ffff:ffff:ffff:ffff:ffff,US -2001:470:80ed::,2001:470:80ed:7fff:ffff:ffff:ffff:ffff,AU -2001:470:80ed:8000::,2001:470:80f0:ffff:ffff:ffff:ffff:ffff,US -2001:470:80f1::,2001:470:80f1:7fff:ffff:ffff:ffff:ffff,AU -2001:470:80f1:8000::,2001:470:814c:ffff:ffff:ffff:ffff:ffff,US -2001:470:814d::,2001:470:814d:7fff:ffff:ffff:ffff:ffff,AU -2001:470:814d:8000::,2001:470:81ee:ffff:ffff:ffff:ffff:ffff,US -2001:470:81ef::,2001:470:81ef:7fff:ffff:ffff:ffff:ffff,CA -2001:470:81ef:8000::,2001:470:828d:ffff:ffff:ffff:ffff:ffff,US -2001:470:828e::,2001:470:828e:7fff:ffff:ffff:ffff:ffff,CA -2001:470:828e:8000::,2001:470:8327:ffff:ffff:ffff:ffff:ffff,US -2001:470:8328::,2001:470:8328:7fff:ffff:ffff:ffff:ffff,CN -2001:470:8328:8000::,2001:470:83a2:ffff:ffff:ffff:ffff:ffff,US -2001:470:83a3::,2001:470:83a3:7fff:ffff:ffff:ffff:ffff,AU -2001:470:83a3:8000::,2001:470:83bb:ffff:ffff:ffff:ffff:ffff,US +2001:470:80b7:8000::,2001:470:83bb:ffff:ffff:ffff:ffff:ffff,US 2001:470:83bc::,2001:470:83bc:7fff:ffff:ffff:ffff:ffff,CN -2001:470:83bc:8000::,2001:470:83d0:7fff:ffff:ffff:ffff:ffff,US -2001:470:83d0:8000::,2001:470:83d0:ffff:ffff:ffff:ffff:ffff,CN -2001:470:83d1::,2001:470:83e8:ffff:ffff:ffff:ffff:ffff,US +2001:470:83bc:8000::,2001:470:83e8:ffff:ffff:ffff:ffff:ffff,US 2001:470:83e9::,2001:470:83e9:7fff:ffff:ffff:ffff:ffff,CN -2001:470:83e9:8000::,2001:470:8551:ffff:ffff:ffff:ffff:ffff,US -2001:470:8552::,2001:470:8552:7fff:ffff:ffff:ffff:ffff,CN -2001:470:8552:8000::,2001:470:8578:ffff:ffff:ffff:ffff:ffff,US -2001:470:8579::,2001:470:8579:7fff:ffff:ffff:ffff:ffff,CN -2001:470:8579:8000::,2001:470:859e:ffff:ffff:ffff:ffff:ffff,US -2001:470:859f::,2001:470:859f:7fff:ffff:ffff:ffff:ffff,AU -2001:470:859f:8000::,2001:470:8c3f:ffff:ffff:ffff:ffff:ffff,US -2001:470:8c40::,2001:470:8c40:7fff:ffff:ffff:ffff:ffff,CA -2001:470:8c40:8000::,2001:470:8c6b:ffff:ffff:ffff:ffff:ffff,US -2001:470:8c6c::,2001:470:8c6c:7fff:ffff:ffff:ffff:ffff,AU -2001:470:8c6c:8000::,2001:470:90a6:ffff:ffff:ffff:ffff:ffff,US -2001:470:90a7::,2001:470:90a7:7fff:ffff:ffff:ffff:ffff,GB -2001:470:90a7:8000::,2001:470:94f2:7fff:ffff:ffff:ffff:ffff,US -2001:470:94f2:8000::,2001:470:94f2:ffff:ffff:ffff:ffff:ffff,CZ -2001:470:94f3::,2001:470:9616:ffff:ffff:ffff:ffff:ffff,US -2001:470:9617::,2001:470:9617:7fff:ffff:ffff:ffff:ffff,GB -2001:470:9617:8000::,2001:470:974e:ffff:ffff:ffff:ffff:ffff,US -2001:470:974f::,2001:470:974f:7fff:ffff:ffff:ffff:ffff,GB -2001:470:974f:8000::,2001:470:9794:ffff:ffff:ffff:ffff:ffff,US +2001:470:83e9:8000::,2001:470:9794:ffff:ffff:ffff:ffff:ffff,US 2001:470:9795::,2001:470:9795:ffff:ffff:ffff:ffff:ffff,GB -2001:470:9796::,2001:470:98e1:ffff:ffff:ffff:ffff:ffff,US -2001:470:98e2::,2001:470:98e2:7fff:ffff:ffff:ffff:ffff,DE -2001:470:98e2:8000::,2001:470:999c:ffff:ffff:ffff:ffff:ffff,US +2001:470:9796::,2001:470:999c:ffff:ffff:ffff:ffff:ffff,US 2001:470:999d::,2001:470:999d:ffff:ffff:ffff:ffff:ffff,DE -2001:470:999e::,2001:470:99b8:ffff:ffff:ffff:ffff:ffff,US -2001:470:99b9::,2001:470:99b9:7fff:ffff:ffff:ffff:ffff,DE -2001:470:99b9:8000::,2001:470:9d38:ffff:ffff:ffff:ffff:ffff,US +2001:470:999e::,2001:470:9d38:ffff:ffff:ffff:ffff:ffff,US 2001:470:9d39::,2001:470:9d39:7fff:ffff:ffff:ffff:ffff,DE -2001:470:9d39:8000::,2001:470:9ebf:ffff:ffff:ffff:ffff:ffff,US -2001:470:9ec0::,2001:470:9ec0:7fff:ffff:ffff:ffff:ffff,DE -2001:470:9ec0:8000::,2001:470:9f5e:ffff:ffff:ffff:ffff:ffff,US -2001:470:9f5f::,2001:470:9f5f:7fff:ffff:ffff:ffff:ffff,RU -2001:470:9f5f:8000::,2001:470:b009:ffff:ffff:ffff:ffff:ffff,US -2001:470:b00a::,2001:470:b00a:7fff:ffff:ffff:ffff:ffff,CA -2001:470:b00a:8000::,2001:470:b047:ffff:ffff:ffff:ffff:ffff,US -2001:470:b048::,2001:470:b048:7fff:ffff:ffff:ffff:ffff,CA -2001:470:b048:8000::,2001:470:b083:ffff:ffff:ffff:ffff:ffff,US -2001:470:b084::,2001:470:b084:7fff:ffff:ffff:ffff:ffff,CA -2001:470:b084:8000::,2001:470:b0e1:ffff:ffff:ffff:ffff:ffff,US +2001:470:9d39:8000::,2001:470:b0e1:ffff:ffff:ffff:ffff:ffff,US 2001:470:b0e2::,2001:470:b0e2:ffff:ffff:ffff:ffff:ffff,CA -2001:470:b0e3::,2001:470:b136:7fff:ffff:ffff:ffff:ffff,US -2001:470:b136:8000::,2001:470:b136:ffff:ffff:ffff:ffff:ffff,CA -2001:470:b137::,2001:470:b14d:ffff:ffff:ffff:ffff:ffff,US -2001:470:b14e::,2001:470:b14e:7fff:ffff:ffff:ffff:ffff,CA -2001:470:b14e:8000::,2001:470:b218:ffff:ffff:ffff:ffff:ffff,US -2001:470:b219::,2001:470:b219:7fff:ffff:ffff:ffff:ffff,CA -2001:470:b219:8000::,2001:470:b23e:ffff:ffff:ffff:ffff:ffff,US -2001:470:b23f::,2001:470:b23f:7fff:ffff:ffff:ffff:ffff,CA -2001:470:b23f:8000::,2001:470:b24b:ffff:ffff:ffff:ffff:ffff,US -2001:470:b24c::,2001:470:b24c:7fff:ffff:ffff:ffff:ffff,DO -2001:470:b24c:8000::,2001:470:b27e:ffff:ffff:ffff:ffff:ffff,US -2001:470:b27f::,2001:470:b27f:7fff:ffff:ffff:ffff:ffff,CA -2001:470:b27f:8000::,2001:470:b2a6:ffff:ffff:ffff:ffff:ffff,US -2001:470:b2a7::,2001:470:b2a7:7fff:ffff:ffff:ffff:ffff,CA -2001:470:b2a7:8000::,2001:470:b2d4:ffff:ffff:ffff:ffff:ffff,US -2001:470:b2d5::,2001:470:b2d5:7fff:ffff:ffff:ffff:ffff,CA -2001:470:b2d5:8000::,2001:470:b2d9:ffff:ffff:ffff:ffff:ffff,US -2001:470:b2da::,2001:470:b2da:7fff:ffff:ffff:ffff:ffff,CA -2001:470:b2da:8000::,2001:470:b30c:ffff:ffff:ffff:ffff:ffff,US +2001:470:b0e3::,2001:470:b30c:ffff:ffff:ffff:ffff:ffff,US 2001:470:b30d::,2001:470:b30d:7fff:ffff:ffff:ffff:ffff,CN -2001:470:b30d:8000::,2001:470:b328:ffff:ffff:ffff:ffff:ffff,US -2001:470:b329::,2001:470:b329:7fff:ffff:ffff:ffff:ffff,CA -2001:470:b329:8000::,2001:470:b336:7fff:ffff:ffff:ffff:ffff,US -2001:470:b336:8000::,2001:470:b336:ffff:ffff:ffff:ffff:ffff,CA -2001:470:b337::,2001:470:b34f:ffff:ffff:ffff:ffff:ffff,US -2001:470:b350::,2001:470:b350:7fff:ffff:ffff:ffff:ffff,CA -2001:470:b350:8000::,2001:470:b36c:ffff:ffff:ffff:ffff:ffff,US -2001:470:b36d::,2001:470:b36d:7fff:ffff:ffff:ffff:ffff,CA -2001:470:b36d:8000::,2001:470:b398:ffff:ffff:ffff:ffff:ffff,US -2001:470:b399::,2001:470:b399:7fff:ffff:ffff:ffff:ffff,CA -2001:470:b399:8000::,2001:470:b3b5:ffff:ffff:ffff:ffff:ffff,US -2001:470:b3b6::,2001:470:b3b6:7fff:ffff:ffff:ffff:ffff,CA -2001:470:b3b6:8000::,2001:470:b41b:ffff:ffff:ffff:ffff:ffff,US -2001:470:b41c::,2001:470:b41c:7fff:ffff:ffff:ffff:ffff,CH -2001:470:b41c:8000::,2001:470:b431:7fff:ffff:ffff:ffff:ffff,US -2001:470:b431:8000::,2001:470:b431:ffff:ffff:ffff:ffff:ffff,CH -2001:470:b432::,2001:470:b4a4:ffff:ffff:ffff:ffff:ffff,US -2001:470:b4a5::,2001:470:b4a5:7fff:ffff:ffff:ffff:ffff,DE -2001:470:b4a5:8000::,2001:470:b4e9:ffff:ffff:ffff:ffff:ffff,US +2001:470:b30d:8000::,2001:470:b4e9:ffff:ffff:ffff:ffff:ffff,US 2001:470:b4ea::,2001:470:b4ea:ffff:ffff:ffff:ffff:ffff,AT -2001:470:b4eb::,2001:470:b517:ffff:ffff:ffff:ffff:ffff,US -2001:470:b518::,2001:470:b518:7fff:ffff:ffff:ffff:ffff,PL -2001:470:b518:8000::,2001:470:b59e:ffff:ffff:ffff:ffff:ffff,US +2001:470:b4eb::,2001:470:b59e:ffff:ffff:ffff:ffff:ffff,US 2001:470:b59f::,2001:470:b59f:7fff:ffff:ffff:ffff:ffff,CH -2001:470:b59f:8000::,2001:470:b60d:ffff:ffff:ffff:ffff:ffff,US -2001:470:b60e::,2001:470:b60e:7fff:ffff:ffff:ffff:ffff,DE -2001:470:b60e:8000::,2001:470:b625:ffff:ffff:ffff:ffff:ffff,US -2001:470:b626::,2001:470:b626:7fff:ffff:ffff:ffff:ffff,DE -2001:470:b626:8000::,2001:470:b7a4:ffff:ffff:ffff:ffff:ffff,US -2001:470:b7a5::,2001:470:b7a5:7fff:ffff:ffff:ffff:ffff,CH -2001:470:b7a5:8000::,2001:470:b7b6:ffff:ffff:ffff:ffff:ffff,US -2001:470:b7b7::,2001:470:b7b7:7fff:ffff:ffff:ffff:ffff,AT -2001:470:b7b7:8000::,2001:470:b8e6:ffff:ffff:ffff:ffff:ffff,US -2001:470:b8e7::,2001:470:b8e7:7fff:ffff:ffff:ffff:ffff,CR -2001:470:b8e7:8000::,2001:470:c17a:ffff:ffff:ffff:ffff:ffff,US -2001:470:c17b::,2001:470:c17b:7fff:ffff:ffff:ffff:ffff,CA -2001:470:c17b:8000::,2001:470:c322:ffff:ffff:ffff:ffff:ffff,US -2001:470:c323::,2001:470:c323:7fff:ffff:ffff:ffff:ffff,CA -2001:470:c323:8000::,2001:470:c385:ffff:ffff:ffff:ffff:ffff,US -2001:470:c386::,2001:470:c386:7fff:ffff:ffff:ffff:ffff,CA -2001:470:c386:8000::,2001:470:c81c:ffff:ffff:ffff:ffff:ffff,US -2001:470:c81d::,2001:470:c81d:7fff:ffff:ffff:ffff:ffff,TN -2001:470:c81d:8000::,2001:470:c8b7:7fff:ffff:ffff:ffff:ffff,US -2001:470:c8b7:8000::,2001:470:c8b7:ffff:ffff:ffff:ffff:ffff,FR -2001:470:c8b8::,2001:470:c8f1:ffff:ffff:ffff:ffff:ffff,US -2001:470:c8f2::,2001:470:c8f2:7fff:ffff:ffff:ffff:ffff,ES -2001:470:c8f2:8000::,2001:470:c9b2:ffff:ffff:ffff:ffff:ffff,US +2001:470:b59f:8000::,2001:470:b625:ffff:ffff:ffff:ffff:ffff,US +2001:470:b626::,2001:470:b626:ff:ffff:ffff:ffff:ffff,DE +2001:470:b626:100::,2001:470:c9b2:ffff:ffff:ffff:ffff:ffff,US 2001:470:c9b3::,2001:470:c9b3:7fff:ffff:ffff:ffff:ffff,ES -2001:470:c9b3:8000::,2001:470:cd93:7fff:ffff:ffff:ffff:ffff,US -2001:470:cd93:8000::,2001:470:cd93:ffff:ffff:ffff:ffff:ffff,FR -2001:470:cd94::,2001:470:d050:ffff:ffff:ffff:ffff:ffff,US -2001:470:d051::,2001:470:d051:7fff:ffff:ffff:ffff:ffff,NL -2001:470:d051:8000::,2001:470:d17a:ffff:ffff:ffff:ffff:ffff,US -2001:470:d17b::,2001:470:d17b:7fff:ffff:ffff:ffff:ffff,PL -2001:470:d17b:8000::,2001:470:d4ec:ffff:ffff:ffff:ffff:ffff,US -2001:470:d4ed::,2001:470:d4ed:7fff:ffff:ffff:ffff:ffff,FR -2001:470:d4ed:8000::,2001:470:d6b8:ffff:ffff:ffff:ffff:ffff,US +2001:470:c9b3:8000::,2001:470:d6b8:ffff:ffff:ffff:ffff:ffff,US 2001:470:d6b9::,2001:470:d6b9:7fff:ffff:ffff:ffff:ffff,RU -2001:470:d6b9:8000::,2001:470:d6e2:ffff:ffff:ffff:ffff:ffff,US -2001:470:d6e3::,2001:470:d6e3:7fff:ffff:ffff:ffff:ffff,NL -2001:470:d6e3:8000::,2001:470:d890:ffff:ffff:ffff:ffff:ffff,US -2001:470:d891::,2001:470:d891:7fff:ffff:ffff:ffff:ffff,BR -2001:470:d891:8000::,2001:470:d9cc:ffff:ffff:ffff:ffff:ffff,US -2001:470:d9cd::,2001:470:d9cd:7fff:ffff:ffff:ffff:ffff,DO -2001:470:d9cd:8000::,2001:470:db28:ffff:ffff:ffff:ffff:ffff,US -2001:470:db29::,2001:470:db29:7fff:ffff:ffff:ffff:ffff,DO -2001:470:db29:8000::,2001:470:dc00:ffff:ffff:ffff:ffff:ffff,US -2001:470:dc01::,2001:470:dc01:7fff:ffff:ffff:ffff:ffff,SE -2001:470:dc01:8000::,2001:470:dc08:ffff:ffff:ffff:ffff:ffff,US -2001:470:dc09::,2001:470:dc09:7fff:ffff:ffff:ffff:ffff,SE -2001:470:dc09:8000::,2001:470:dc24:ffff:ffff:ffff:ffff:ffff,US -2001:470:dc25::,2001:470:dc25:7fff:ffff:ffff:ffff:ffff,RU -2001:470:dc25:8000::,2001:470:dc59:ffff:ffff:ffff:ffff:ffff,US -2001:470:dc5a::,2001:470:dc5a:7fff:ffff:ffff:ffff:ffff,SE -2001:470:dc5a:8000::,2001:470:dcb3:ffff:ffff:ffff:ffff:ffff,US -2001:470:dcb4::,2001:470:dcb4:7fff:ffff:ffff:ffff:ffff,NO -2001:470:dcb4:8000::,2001:470:dcc3:ffff:ffff:ffff:ffff:ffff,US -2001:470:dcc4::,2001:470:dcc4:7fff:ffff:ffff:ffff:ffff,SE -2001:470:dcc4:8000::,2001:470:dcd0:ffff:ffff:ffff:ffff:ffff,US -2001:470:dcd1::,2001:470:dcd1:7fff:ffff:ffff:ffff:ffff,SE -2001:470:dcd1:8000::,2001:470:dd03:ffff:ffff:ffff:ffff:ffff,US -2001:470:dd04::,2001:470:dd04:7fff:ffff:ffff:ffff:ffff,SE -2001:470:dd04:8000::,2001:470:dd3a:ffff:ffff:ffff:ffff:ffff,US -2001:470:dd3b::,2001:470:dd3b:7fff:ffff:ffff:ffff:ffff,FI -2001:470:dd3b:8000::,2001:470:dd94:ffff:ffff:ffff:ffff:ffff,US +2001:470:d6b9:8000::,2001:470:dd94:ffff:ffff:ffff:ffff:ffff,US 2001:470:dd95::,2001:470:dd95:7fff:ffff:ffff:ffff:ffff,UA -2001:470:dd95:8000::,2001:470:dda1:ffff:ffff:ffff:ffff:ffff,US -2001:470:dda2::,2001:470:dda2:7fff:ffff:ffff:ffff:ffff,SE -2001:470:dda2:8000::,2001:470:dde6:ffff:ffff:ffff:ffff:ffff,US -2001:470:dde7::,2001:470:dde7:7fff:ffff:ffff:ffff:ffff,SE -2001:470:dde7:8000::,2001:470:ddf5:ffff:ffff:ffff:ffff:ffff,US -2001:470:ddf6::,2001:470:ddf6:7fff:ffff:ffff:ffff:ffff,SE -2001:470:ddf6:8000::,2001:470:de4a:ffff:ffff:ffff:ffff:ffff,US -2001:470:de4b::,2001:470:de4b:7fff:ffff:ffff:ffff:ffff,SE -2001:470:de4b:8000::,2001:470:de8a:ffff:ffff:ffff:ffff:ffff,US -2001:470:de8b::,2001:470:de8b:7fff:ffff:ffff:ffff:ffff,RU -2001:470:de8b:8000::,2001:470:deb5:7fff:ffff:ffff:ffff:ffff,US +2001:470:dd95:8000::,2001:470:deb5:7fff:ffff:ffff:ffff:ffff,US 2001:470:deb5:8000::,2001:470:deb5:ffff:ffff:ffff:ffff:ffff,RU -2001:470:deb6::,2001:470:debb:ffff:ffff:ffff:ffff:ffff,US -2001:470:debc::,2001:470:debc:7fff:ffff:ffff:ffff:ffff,SE -2001:470:debc:8000::,2001:470:dec3:ffff:ffff:ffff:ffff:ffff,US +2001:470:deb6::,2001:470:dec3:ffff:ffff:ffff:ffff:ffff,US 2001:470:dec4::,2001:470:dec4:ffff:ffff:ffff:ffff:ffff,SE -2001:470:dec5::,2001:470:df35:ffff:ffff:ffff:ffff:ffff,US -2001:470:df36::,2001:470:df36:7fff:ffff:ffff:ffff:ffff,RU -2001:470:df36:8000::,2001:470:df6f:ffff:ffff:ffff:ffff:ffff,US -2001:470:df70::,2001:470:df70:7fff:ffff:ffff:ffff:ffff,SE -2001:470:df70:8000::,2001:470:df7c:ffff:ffff:ffff:ffff:ffff,US -2001:470:df7d::,2001:470:df7d:7fff:ffff:ffff:ffff:ffff,SE -2001:470:df7d:8000::,2001:470:dfd5:ffff:ffff:ffff:ffff:ffff,US -2001:470:dfd6::,2001:470:dfd6:7fff:ffff:ffff:ffff:ffff,NO -2001:470:dfd6:8000::,2001:470:e1e4:ffff:ffff:ffff:ffff:ffff,US -2001:470:e1e5::,2001:470:e1e5:7fff:ffff:ffff:ffff:ffff,CA -2001:470:e1e5:8000::,2001:470:e20e:ffff:ffff:ffff:ffff:ffff,US -2001:470:e20f::,2001:470:e20f:7fff:ffff:ffff:ffff:ffff,CA -2001:470:e20f:8000::,2001:470:e939:ffff:ffff:ffff:ffff:ffff,US -2001:470:e93a::,2001:470:e93a:7fff:ffff:ffff:ffff:ffff,CA -2001:470:e93a:8000::,2001:470:e97e:ffff:ffff:ffff:ffff:ffff,US -2001:470:e97f::,2001:470:e97f:7fff:ffff:ffff:ffff:ffff,CA -2001:470:e97f:8000::,2001:470:e9ef:ffff:ffff:ffff:ffff:ffff,US -2001:470:e9f0::,2001:470:e9f0:7fff:ffff:ffff:ffff:ffff,CA -2001:470:e9f0:8000::,2001:470:ea08:ffff:ffff:ffff:ffff:ffff,US -2001:470:ea09::,2001:470:ea09:7fff:ffff:ffff:ffff:ffff,CA -2001:470:ea09:8000::,2001:470:ea76:ffff:ffff:ffff:ffff:ffff,US +2001:470:dec5::,2001:470:ea76:ffff:ffff:ffff:ffff:ffff,US 2001:470:ea77::,2001:470:ea77:7fff:ffff:ffff:ffff:ffff,AU -2001:470:ea77:8000::,2001:470:ecf5:ffff:ffff:ffff:ffff:ffff,US -2001:470:ecf6::,2001:470:ecf6:7fff:ffff:ffff:ffff:ffff,ID -2001:470:ecf6:8000::,2001:470:ecf6:ffff:ffff:ffff:ffff:ffff,US -2001:470:ecf7::,2001:470:ecf7:7fff:ffff:ffff:ffff:ffff,ID -2001:470:ecf7:8000::,2001:470:ed26:ffff:ffff:ffff:ffff:ffff,US +2001:470:ea77:8000::,2001:470:ed26:ffff:ffff:ffff:ffff:ffff,US 2001:470:ed27::,2001:470:ed27:7fff:ffff:ffff:ffff:ffff,ID -2001:470:ed27:8000::,2001:470:ed3c:ffff:ffff:ffff:ffff:ffff,US -2001:470:ed3d::,2001:470:ed3d:7fff:ffff:ffff:ffff:ffff,SG -2001:470:ed3d:8000::,2001:470:ed42:ffff:ffff:ffff:ffff:ffff,US +2001:470:ed27:8000::,2001:470:ed42:ffff:ffff:ffff:ffff:ffff,US 2001:470:ed43::,2001:470:ed43:7fff:ffff:ffff:ffff:ffff,ID 2001:470:ed43:8000::,2001:470:ef84:ffff:ffff:ffff:ffff:ffff,US 2001:470:ef85::,2001:470:ef85:7fff:ffff:ffff:ffff:ffff,CN 2001:470:ef85:8000::,2001:470:f088:ffff:ffff:ffff:ffff:ffff,US 2001:470:f089::,2001:470:f089:7fff:ffff:ffff:ffff:ffff,CN -2001:470:f089:8000::,2001:470:f091:ffff:ffff:ffff:ffff:ffff,US -2001:470:f092::,2001:470:f092:7fff:ffff:ffff:ffff:ffff,CN -2001:470:f092:8000::,2001:470:f1fa:ffff:ffff:ffff:ffff:ffff,US -2001:470:f1fb::,2001:470:f1fb:7fff:ffff:ffff:ffff:ffff,CN -2001:470:f1fb:8000::,2001:470:f270:ffff:ffff:ffff:ffff:ffff,US -2001:470:f271::,2001:470:f271:7fff:ffff:ffff:ffff:ffff,AU -2001:470:f271:8000::,2001:470:f382:ffff:ffff:ffff:ffff:ffff,US -2001:470:f383::,2001:470:f383:7fff:ffff:ffff:ffff:ffff,CN -2001:470:f383:8000::,2001:470:f3bd:ffff:ffff:ffff:ffff:ffff,US -2001:470:f3be::,2001:470:f3be:ffff:ffff:ffff:ffff:ffff,CN -2001:470:f3bf::,2001:470:f4b4:7fff:ffff:ffff:ffff:ffff,US -2001:470:f4b4:8000::,2001:470:f4b4:ffff:ffff:ffff:ffff:ffff,CN -2001:470:f4b5::,2001:470:f4c3:ffff:ffff:ffff:ffff:ffff,US -2001:470:f4c4::,2001:470:f4c4:7fff:ffff:ffff:ffff:ffff,CN -2001:470:f4c4:8000::,2001:470:f818:ffff:ffff:ffff:ffff:ffff,US +2001:470:f089:8000::,2001:470:f818:ffff:ffff:ffff:ffff:ffff,US 2001:470:f819::,2001:470:f819:7fff:ffff:ffff:ffff:ffff,CN -2001:470:f819:8000::,2001:470:f83d:7fff:ffff:ffff:ffff:ffff,US -2001:470:f83d:8000::,2001:470:f83d:ffff:ffff:ffff:ffff:ffff,CN -2001:470:f83e::,2001:470:f891:ffff:ffff:ffff:ffff:ffff,US +2001:470:f819:8000::,2001:470:f891:ffff:ffff:ffff:ffff:ffff,US 2001:470:f892::,2001:470:f892:7fff:ffff:ffff:ffff:ffff,CN -2001:470:f892:8000::,2001:470:f91b:ffff:ffff:ffff:ffff:ffff,US -2001:470:f91c::,2001:470:f91c:7fff:ffff:ffff:ffff:ffff,CN -2001:470:f91c:8000::,2001:470:fa48:ffff:ffff:ffff:ffff:ffff,US -2001:470:fa49::,2001:470:fa49:7fff:ffff:ffff:ffff:ffff,CN -2001:470:fa49:8000::,2001:470:fa6b:ffff:ffff:ffff:ffff:ffff,US -2001:470:fa6c::,2001:470:fa6c:7fff:ffff:ffff:ffff:ffff,HK -2001:470:fa6c:8000::,2001:470:fa87:ffff:ffff:ffff:ffff:ffff,US -2001:470:fa88::,2001:470:fa88:7fff:ffff:ffff:ffff:ffff,HK -2001:470:fa88:8000::,2001:470:fabc:ffff:ffff:ffff:ffff:ffff,US -2001:470:fabd::,2001:470:fabd:7fff:ffff:ffff:ffff:ffff,HK -2001:470:fabd:8000::,2001:470:fb3b:ffff:ffff:ffff:ffff:ffff,US +2001:470:f892:8000::,2001:470:fb3b:ffff:ffff:ffff:ffff:ffff,US 2001:470:fb3c::,2001:470:fb3c:7fff:ffff:ffff:ffff:ffff,CN -2001:470:fb3c:8000::,2001:470:fc62:ffff:ffff:ffff:ffff:ffff,US -2001:470:fc63::,2001:470:fc63:7fff:ffff:ffff:ffff:ffff,CN -2001:470:fc63:8000::,2001:470:fc78:ffff:ffff:ffff:ffff:ffff,US +2001:470:fb3c:8000::,2001:470:fc78:ffff:ffff:ffff:ffff:ffff,US 2001:470:fc79::,2001:470:fc79:7fff:ffff:ffff:ffff:ffff,JP 2001:470:fc79:8000::,2001:470:fc86:7fff:ffff:ffff:ffff:ffff,US 2001:470:fc86:8000::,2001:470:fc86:ffff:ffff:ffff:ffff:ffff,JP 2001:470:fc87::,2001:470:fdfe:ffff:ffff:ffff:ffff:ffff,US 2001:470:fdff::,2001:470:fdff:7fff:ffff:ffff:ffff:ffff,JP -2001:470:fdff:8000::,2001:470:fe3f:ffff:ffff:ffff:ffff:ffff,US -2001:470:fe40::,2001:470:fe40:7fff:ffff:ffff:ffff:ffff,JP -2001:470:fe40:8000::,2001:470:fe7c:7fff:ffff:ffff:ffff:ffff,US +2001:470:fdff:8000::,2001:470:fe7c:7fff:ffff:ffff:ffff:ffff,US 2001:470:fe7c:8000::,2001:470:fe7c:ffff:ffff:ffff:ffff:ffff,CN 2001:470:fe7d::,2001:470:fecb:ffff:ffff:ffff:ffff:ffff,US 2001:470:fecc::,2001:470:fecc:7fff:ffff:ffff:ffff:ffff,CN @@ -844,7 +419,8 @@ 2001:504:43::,2001:504:45:ffff:ffff:ffff:ffff:ffff,US 2001:504:46::,2001:504:46:ffff:ffff:ffff:ffff:ffff,CA 2001:504:47::,2001:504:47:ffff:ffff:ffff:ffff:ffff,US -2001:504:57::,2001:504:58:ffff:ffff:ffff:ffff:ffff,US +2001:504:57::,2001:504:59:ffff:ffff:ffff:ffff:ffff,US +2001:504:60::,2001:504:60:ffff:ffff:ffff:ffff:ffff,US 2001:506::,2001:506:1:ffff:ffff:ffff:ffff:ffff,US 2001:506:8::,2001:506:8:ffff:ffff:ffff:ffff:ffff,US 2001:506:20::,2001:506:20:ffff:ffff:ffff:ffff:ffff,CA @@ -867,13 +443,7 @@ 2001:550:0:1000::9a19:326,2001:550:0:1000::9a19:326,SI 2001:550:0:1000::9a19:327,2001:550:0:1000::9a36:2631,US 2001:550:0:1000::9a36:2632,2001:550:0:1000::9a36:2632,DE -2001:550:0:1000::9a36:2633,2001:550:7ff:ffff:ffff:ffff:ffff:ffff,US -2001:550:800::,2001:550:800:7fff:ffff:ffff:ffff:ffff,CA -2001:550:800:8000::,2001:550:801:ffff:ffff:ffff:ffff:ffff,US -2001:550:802::,2001:550:802:7fff:ffff:ffff:ffff:ffff,CA -2001:550:802:8000::,2001:550:907:ffff:ffff:ffff:ffff:ffff,US -2001:550:908::,2001:550:908:7fff:ffff:ffff:ffff:ffff,CA -2001:550:908:8000::,2001:550:909:ffff:ffff:ffff:ffff:ffff,US +2001:550:0:1000::9a36:2633,2001:550:909:ffff:ffff:ffff:ffff:ffff,US 2001:550:90a::,2001:550:90a:7fff:ffff:ffff:ffff:ffff,CA 2001:550:90a:8000::,2001:550:ffff:ffff:ffff:ffff:ffff:ffff,US 2001:558::,2001:560:ffff:ffff:ffff:ffff:ffff:ffff,US @@ -891,15 +461,11 @@ 2001:5b8::,2001:5b8:ffff:ffff:ffff:ffff:ffff:ffff,US 2001:5c0:1000::,2001:5c0:10ff:ffff:ffff:ffff:ffff:ffff,CA 2001:5c0:1100::,2001:5c0:1100::,US -2001:5c0:1100::1,2001:5c0:1100:7fff:ffff:ffff:ffff:ffff,CA -2001:5c0:1100:8000::,2001:5c0:1100:bfff:ffff:ffff:ffff:ffff,US -2001:5c0:1100:c000::,2001:5c0:1501:7fff:ffff:ffff:ffff:ffff,CA -2001:5c0:1501:8000::,2001:5c0:1501:ffff:ffff:ffff:ffff:ffff,RU -2001:5c0:1502::,2001:5c0:1505:7fff:ffff:ffff:ffff:ffff,CA +2001:5c0:1100::1,2001:5c0:13ff:ffff:ffff:ffff:ffff:ffff,CA +2001:5c0:1400::,2001:5c0:1400:7fff:ffff:ffff:ffff:ffff,UA +2001:5c0:1400:8000::,2001:5c0:1505:7fff:ffff:ffff:ffff:ffff,CA 2001:5c0:1505:8000::,2001:5c0:1505:ffff:ffff:ffff:ffff:ffff,RU -2001:5c0:1506::,2001:5c0:1508:7fff:ffff:ffff:ffff:ffff,CA -2001:5c0:1508:8000::,2001:5c0:1508:ffff:ffff:ffff:ffff:ffff,ES -2001:5c0:1509::,2001:5c0:1fff:ffff:ffff:ffff:ffff:ffff,CA +2001:5c0:1506::,2001:5c0:1fff:ffff:ffff:ffff:ffff:ffff,CA 2001:5c8::,2001:5c8:ffff:ffff:ffff:ffff:ffff:ffff,US 2001:5d0::,2001:5d0:ffff:ffff:ffff:ffff:ffff:ffff,US 2001:5d8::,2001:5d8:ffff:ffff:ffff:ffff:ffff:ffff,US @@ -918,11 +484,11 @@ 2001:648::,2001:64f:ffff:ffff:ffff:ffff:ffff:ffff,GR 2001:650::,2001:65f:ffff:ffff:ffff:ffff:ffff:ffff,DE 2001:660::,2001:667:ffff:ffff:ffff:ffff:ffff:ffff,FR -2001:668::,2001:668:1e:ffff:ffff:ffff:ffff:ffff,DE -2001:668:1f::,2001:668:1f:3d:ffff:ffff:ffff:ffff,US +2001:668::,2001:668:1f:3d:ffff:ffff:ffff:ffff,DE 2001:668:1f:3e::,2001:668:1f:3e:ffff:ffff:ffff:ffff,GB -2001:668:1f:3f::,2001:668:1f:7fff:ffff:ffff:ffff:ffff,US -2001:668:1f:8000::,2001:66f:ffff:ffff:ffff:ffff:ffff:ffff,DE +2001:668:1f:3f::,2001:668:1f:44:ffff:ffff:ffff:ffff,DE +2001:668:1f:45::,2001:668:1f:45:ffff:ffff:ffff:ffff,GB +2001:668:1f:46::,2001:66f:ffff:ffff:ffff:ffff:ffff:ffff,DE 2001:670::,2001:673:ffff:ffff:ffff:ffff:ffff:ffff,FI 2001:678:1::,2001:678:1:ffff:ffff:ffff:ffff:ffff,CZ 2001:678:2::,2001:678:2:ffff:ffff:ffff:ffff:ffff,DE @@ -983,6 +549,15 @@ 2001:678:d0::,2001:678:d0:ffff:ffff:ffff:ffff:ffff,NL 2001:678:d4::,2001:678:d4:ffff:ffff:ffff:ffff:ffff,IT 2001:678:d8::,2001:678:d8:ffff:ffff:ffff:ffff:ffff,LV +2001:678:dc::,2001:678:dc:ffff:ffff:ffff:ffff:ffff,NL +2001:678:e0::,2001:678:e0:ffff:ffff:ffff:ffff:ffff,MD +2001:678:e4::,2001:678:e4:ffff:ffff:ffff:ffff:ffff,SE +2001:678:e8::,2001:678:e8:ffff:ffff:ffff:ffff:ffff,CZ +2001:678:ec::,2001:678:ec:ffff:ffff:ffff:ffff:ffff,RU +2001:678:f0::,2001:678:f0:ffff:ffff:ffff:ffff:ffff,SE +2001:678:f4::,2001:678:f4:ffff:ffff:ffff:ffff:ffff,RU +2001:678:f8::,2001:678:f8:ffff:ffff:ffff:ffff:ffff,DE +2001:678:fc::,2001:678:fc:ffff:ffff:ffff:ffff:ffff,LT 2001:67c::,2001:67c::ffff:ffff:ffff:ffff:ffff,IE 2001:67c:4::,2001:67c:4:ffff:ffff:ffff:ffff:ffff,DE 2001:67c:8::,2001:67c:8:ffff:ffff:ffff:ffff:ffff,CH @@ -1012,6 +587,7 @@ 2001:67c:68::,2001:67c:68:ffff:ffff:ffff:ffff:ffff,CZ 2001:67c:6c::,2001:67c:6c:ffff:ffff:ffff:ffff:ffff,IS 2001:67c:70::,2001:67c:70:ffff:ffff:ffff:ffff:ffff,FR +2001:67c:78::,2001:67c:78:ffff:ffff:ffff:ffff:ffff,NL 2001:67c:7c::,2001:67c:7c:ffff:ffff:ffff:ffff:ffff,AT 2001:67c:80::,2001:67c:80:ffff:ffff:ffff:ffff:ffff,GB 2001:67c:84::,2001:67c:84:ffff:ffff:ffff:ffff:ffff,CZ @@ -1227,13 +803,12 @@ 2001:67c:3d4::,2001:67c:3d4:ffff:ffff:ffff:ffff:ffff,CZ 2001:67c:3d8::,2001:67c:3d8:ffff:ffff:ffff:ffff:ffff,GB 2001:67c:3dc::,2001:67c:3dc:ffff:ffff:ffff:ffff:ffff,GB -2001:67c:3e0::,2001:67c:3e0:ffff:ffff:ffff:ffff:ffff,GB 2001:67c:3e4::,2001:67c:3e4:ffff:ffff:ffff:ffff:ffff,GB 2001:67c:3e8::,2001:67c:3e9:ffff:ffff:ffff:ffff:ffff,SA 2001:67c:3f0::,2001:67c:3f0:ffff:ffff:ffff:ffff:ffff,GB 2001:67c:3f4::,2001:67c:3f4:ffff:ffff:ffff:ffff:ffff,HR 2001:67c:3f8::,2001:67c:3f8:ffff:ffff:ffff:ffff:ffff,SI -2001:67c:3fc::,2001:67c:3fc:ffff:ffff:ffff:ffff:ffff,AT +2001:67c:3fc::,2001:67c:3fc:ffff:ffff:ffff:ffff:ffff,CH 2001:67c:400::,2001:67c:400:ffff:ffff:ffff:ffff:ffff,RU 2001:67c:404::,2001:67c:404:ffff:ffff:ffff:ffff:ffff,AT 2001:67c:408::,2001:67c:408:ffff:ffff:ffff:ffff:ffff,FR @@ -1555,7 +1130,6 @@ 2001:67c:1154::,2001:67c:1154:ffff:ffff:ffff:ffff:ffff,TR 2001:67c:1158::,2001:67c:1158:ffff:ffff:ffff:ffff:ffff,PL 2001:67c:115c::,2001:67c:115c:ffff:ffff:ffff:ffff:ffff,RO -2001:67c:1160::,2001:67c:1160:ffff:ffff:ffff:ffff:ffff,RO 2001:67c:1164::,2001:67c:1164:ffff:ffff:ffff:ffff:ffff,UA 2001:67c:1168::,2001:67c:1168:ffff:ffff:ffff:ffff:ffff,PL 2001:67c:116c::,2001:67c:116c:ffff:ffff:ffff:ffff:ffff,SE @@ -1662,9 +1236,7 @@ 2001:67c:1344::,2001:67c:1344:ffff:ffff:ffff:ffff:ffff,RU 2001:67c:1348::,2001:67c:1348:ffff:ffff:ffff:ffff:ffff,FR 2001:67c:134c::,2001:67c:134c:ffff:ffff:ffff:ffff:ffff,CZ -2001:67c:1350::,2001:67c:1350:1fff:ffff:ffff:ffff:ffff,CY -2001:67c:1350:2000::,2001:67c:1350:3fff:ffff:ffff:ffff:ffff,SE -2001:67c:1350:4000::,2001:67c:1350:ffff:ffff:ffff:ffff:ffff,CY +2001:67c:1350::,2001:67c:1350:ffff:ffff:ffff:ffff:ffff,CY 2001:67c:1354::,2001:67c:1354:ffff:ffff:ffff:ffff:ffff,GB 2001:67c:1358::,2001:67c:1358:ffff:ffff:ffff:ffff:ffff,RU 2001:67c:135c::,2001:67c:135c:ffff:ffff:ffff:ffff:ffff,SE @@ -1740,7 +1312,6 @@ 2001:67c:1508::,2001:67c:1508:ffff:ffff:ffff:ffff:ffff,AT 2001:67c:150c::,2001:67c:150c:ffff:ffff:ffff:ffff:ffff,CH 2001:67c:1510::,2001:67c:1510:ffff:ffff:ffff:ffff:ffff,GB -2001:67c:1514::,2001:67c:1514:ffff:ffff:ffff:ffff:ffff,RO 2001:67c:1518::,2001:67c:1518:ffff:ffff:ffff:ffff:ffff,UA 2001:67c:151c::,2001:67c:151c:ffff:ffff:ffff:ffff:ffff,AT 2001:67c:1520::,2001:67c:1520:ffff:ffff:ffff:ffff:ffff,GB @@ -1856,7 +1427,6 @@ 2001:67c:177c::,2001:67c:177c:ffff:ffff:ffff:ffff:ffff,LT 2001:67c:1780::,2001:67c:1780:ffff:ffff:ffff:ffff:ffff,CH 2001:67c:1784::,2001:67c:1784:ffff:ffff:ffff:ffff:ffff,SE -2001:67c:178c::,2001:67c:178c:ffff:ffff:ffff:ffff:ffff,RO 2001:67c:1790::,2001:67c:1790:ffff:ffff:ffff:ffff:ffff,RU 2001:67c:1794::,2001:67c:1794:ffff:ffff:ffff:ffff:ffff,SE 2001:67c:1798::,2001:67c:1798:ffff:ffff:ffff:ffff:ffff,CZ @@ -1912,7 +1482,6 @@ 2001:67c:186c::,2001:67c:186c:ffff:ffff:ffff:ffff:ffff,SE 2001:67c:1870::,2001:67c:1870:ffff:ffff:ffff:ffff:ffff,NL 2001:67c:1874::,2001:67c:1874:ffff:ffff:ffff:ffff:ffff,CZ -2001:67c:1878::,2001:67c:1878:ffff:ffff:ffff:ffff:ffff,RO 2001:67c:187c::,2001:67c:187c:ffff:ffff:ffff:ffff:ffff,RO 2001:67c:1880::,2001:67c:1880:ffff:ffff:ffff:ffff:ffff,SE 2001:67c:1884::,2001:67c:1884:ffff:ffff:ffff:ffff:ffff,GB @@ -1973,7 +1542,6 @@ 2001:67c:1980::,2001:67c:1980:ffff:ffff:ffff:ffff:ffff,FR 2001:67c:1984::,2001:67c:1984:ffff:ffff:ffff:ffff:ffff,BG 2001:67c:1988::,2001:67c:1988:ffff:ffff:ffff:ffff:ffff,DE -2001:67c:198c::,2001:67c:198c:ffff:ffff:ffff:ffff:ffff,GB 2001:67c:1990::,2001:67c:1990:ffff:ffff:ffff:ffff:ffff,RO 2001:67c:1994::,2001:67c:1994:ffff:ffff:ffff:ffff:ffff,DE 2001:67c:1998::,2001:67c:1998:ffff:ffff:ffff:ffff:ffff,LU @@ -2032,7 +1600,6 @@ 2001:67c:1b88::,2001:67c:1b88:ffff:ffff:ffff:ffff:ffff,CZ 2001:67c:1b8c::,2001:67c:1b8c:ffff:ffff:ffff:ffff:ffff,PL 2001:67c:1b90::,2001:67c:1b90:ffff:ffff:ffff:ffff:ffff,PL -2001:67c:1b94::,2001:67c:1b94:ffff:ffff:ffff:ffff:ffff,RO 2001:67c:1b98::,2001:67c:1b98:ffff:ffff:ffff:ffff:ffff,SE 2001:67c:1b9c::,2001:67c:1b9c:ffff:ffff:ffff:ffff:ffff,NL 2001:67c:1ba0::,2001:67c:1ba0:ffff:ffff:ffff:ffff:ffff,AT @@ -2633,7 +2200,6 @@ 2001:67c:29d8::,2001:67c:29d8:ffff:ffff:ffff:ffff:ffff,AE 2001:67c:29dc::,2001:67c:29dc:ffff:ffff:ffff:ffff:ffff,DE 2001:67c:29e0::,2001:67c:29e0:ffff:ffff:ffff:ffff:ffff,UA -2001:67c:29e4::,2001:67c:29e4:ffff:ffff:ffff:ffff:ffff,DE 2001:67c:29e8::,2001:67c:29e8:ffff:ffff:ffff:ffff:ffff,TR 2001:67c:29ec::,2001:67c:29ec:ffff:ffff:ffff:ffff:ffff,NO 2001:67c:29f0::,2001:67c:29f0:ffff:ffff:ffff:ffff:ffff,BG @@ -2699,7 +2265,6 @@ 2001:67c:2ae0::,2001:67c:2ae0:ffff:ffff:ffff:ffff:ffff,DK 2001:67c:2ae4::,2001:67c:2ae4:ffff:ffff:ffff:ffff:ffff,DE 2001:67c:2ae8::,2001:67c:2ae8:ffff:ffff:ffff:ffff:ffff,DE -2001:67c:2aec::,2001:67c:2aec:ffff:ffff:ffff:ffff:ffff,CH 2001:67c:2af0::,2001:67c:2af0:ffff:ffff:ffff:ffff:ffff,SE 2001:67c:2af4::,2001:67c:2af4:ffff:ffff:ffff:ffff:ffff,RU 2001:67c:2af8::,2001:67c:2af8:ffff:ffff:ffff:ffff:ffff,SE @@ -2726,7 +2291,6 @@ 2001:67c:2b50::,2001:67c:2b50:ffff:ffff:ffff:ffff:ffff,AT 2001:67c:2b54::,2001:67c:2b54:ffff:ffff:ffff:ffff:ffff,CH 2001:67c:2b58::,2001:67c:2b58:ffff:ffff:ffff:ffff:ffff,SE -2001:67c:2b5c::,2001:67c:2b5c:ffff:ffff:ffff:ffff:ffff,FR 2001:67c:2b60::,2001:67c:2b60:ffff:ffff:ffff:ffff:ffff,NL 2001:67c:2b64::,2001:67c:2b64:ffff:ffff:ffff:ffff:ffff,RU 2001:67c:2b68::,2001:67c:2b68:ffff:ffff:ffff:ffff:ffff,RO @@ -2956,6 +2520,40 @@ 2001:67c:2f34::,2001:67c:2f34:ffff:ffff:ffff:ffff:ffff,AT 2001:67c:2f38::,2001:67c:2f38:ffff:ffff:ffff:ffff:ffff,GB 2001:67c:2f3c::,2001:67c:2f3c:ffff:ffff:ffff:ffff:ffff,GB +2001:67c:2f40::,2001:67c:2f40:ffff:ffff:ffff:ffff:ffff,BG +2001:67c:2f44::,2001:67c:2f44:ffff:ffff:ffff:ffff:ffff,DE +2001:67c:2f48::,2001:67c:2f48:ffff:ffff:ffff:ffff:ffff,UA +2001:67c:2f4c::,2001:67c:2f4c:ffff:ffff:ffff:ffff:ffff,BG +2001:67c:2f50::,2001:67c:2f50:ffff:ffff:ffff:ffff:ffff,SE +2001:67c:2f54::,2001:67c:2f54:ffff:ffff:ffff:ffff:ffff,PL +2001:67c:2f58::,2001:67c:2f58:ffff:ffff:ffff:ffff:ffff,GB +2001:67c:2f5c::,2001:67c:2f5c:ffff:ffff:ffff:ffff:ffff,NL +2001:67c:2f60::,2001:67c:2f60:ffff:ffff:ffff:ffff:ffff,DE +2001:67c:2f64::,2001:67c:2f64:ffff:ffff:ffff:ffff:ffff,PL +2001:67c:2f68::,2001:67c:2f68:ffff:ffff:ffff:ffff:ffff,RO +2001:67c:2f6c::,2001:67c:2f6c:ffff:ffff:ffff:ffff:ffff,UA +2001:67c:2f70::,2001:67c:2f70:ffff:ffff:ffff:ffff:ffff,CH +2001:67c:2f74::,2001:67c:2f74:ffff:ffff:ffff:ffff:ffff,PL +2001:67c:2f78::,2001:67c:2f78:ffff:ffff:ffff:ffff:ffff,DE +2001:67c:2f7c::,2001:67c:2f7c:ffff:ffff:ffff:ffff:ffff,SE +2001:67c:2f80::,2001:67c:2f80:ffff:ffff:ffff:ffff:ffff,SE +2001:67c:2f84::,2001:67c:2f84:ffff:ffff:ffff:ffff:ffff,DE +2001:67c:2f88::,2001:67c:2f88:ffff:ffff:ffff:ffff:ffff,NL +2001:67c:2f8c::,2001:67c:2f8c:ffff:ffff:ffff:ffff:ffff,IT +2001:67c:2f90::,2001:67c:2f90:ffff:ffff:ffff:ffff:ffff,RU +2001:67c:2f94::,2001:67c:2f94:ffff:ffff:ffff:ffff:ffff,CH +2001:67c:2f98::,2001:67c:2f98:ffff:ffff:ffff:ffff:ffff,CH +2001:67c:2f9c::,2001:67c:2f9c:ffff:ffff:ffff:ffff:ffff,CZ +2001:67c:2fa0::,2001:67c:2fa0:ffff:ffff:ffff:ffff:ffff,SE +2001:67c:2fa4::,2001:67c:2fa4:ffff:ffff:ffff:ffff:ffff,DE +2001:67c:2fa8::,2001:67c:2fa8:ffff:ffff:ffff:ffff:ffff,DE +2001:67c:2fac::,2001:67c:2fac:ffff:ffff:ffff:ffff:ffff,FI +2001:67c:2fb0::,2001:67c:2fb0:ffff:ffff:ffff:ffff:ffff,DE +2001:67c:2fb4::,2001:67c:2fb4:ffff:ffff:ffff:ffff:ffff,RO +2001:67c:2fb8::,2001:67c:2fb8:ffff:ffff:ffff:ffff:ffff,SE +2001:67c:2fbc::,2001:67c:2fbc:ffff:ffff:ffff:ffff:ffff,DE +2001:67c:2fc0::,2001:67c:2fc0:ffff:ffff:ffff:ffff:ffff,FI +2001:67c:2fc4::,2001:67c:2fc4:ffff:ffff:ffff:ffff:ffff,UA 2001:680::,2001:680:ffff:ffff:ffff:ffff:ffff:ffff,DE 2001:688::,2001:688:ffff:ffff:ffff:ffff:ffff:ffff,FR 2001:690::,2001:697:ffff:ffff:ffff:ffff:ffff:ffff,PT @@ -2969,43 +2567,19 @@ 2001:6e0::,2001:6e0:ffff:ffff:ffff:ffff:ffff:ffff,NL 2001:6e8::,2001:6ef:ffff:ffff:ffff:ffff:ffff:ffff,FI 2001:6f0::,2001:6f7:ffff:ffff:ffff:ffff:ffff:ffff,SE -2001:6f8::,2001:6f8:202:7fff:ffff:ffff:ffff:ffff,GB -2001:6f8:202:8000::,2001:6f8:202:ffff:ffff:ffff:ffff:ffff,BE -2001:6f8:203::,2001:6f8:2ff:ffff:ffff:ffff:ffff:ffff,GB +2001:6f8::,2001:6f8:2ff:ffff:ffff:ffff:ffff:ffff,GB 2001:6f8:300::,2001:6f8:3ff:ffff:ffff:ffff:ffff:ffff,BE -2001:6f8:400::,2001:6f8:8ff:ffff:ffff:ffff:ffff:ffff,GB -2001:6f8:900::,2001:6f8:900:ffff:ffff:ffff:ffff:ffff,DE -2001:6f8:901::,2001:6f8:91c:ffff:ffff:ffff:ffff:ffff,GB -2001:6f8:91d::,2001:6f8:91d:7fff:ffff:ffff:ffff:ffff,DE -2001:6f8:91d:8000::,2001:6f8:1011:ffff:ffff:ffff:ffff:ffff,GB -2001:6f8:1012::,2001:6f8:1012:7fff:ffff:ffff:ffff:ffff,DE -2001:6f8:1012:8000::,2001:6f8:107c:ffff:ffff:ffff:ffff:ffff,GB -2001:6f8:107d::,2001:6f8:107d:7fff:ffff:ffff:ffff:ffff,DE -2001:6f8:107d:8000::,2001:6f8:10f1:ffff:ffff:ffff:ffff:ffff,GB -2001:6f8:10f2::,2001:6f8:10f2:7fff:ffff:ffff:ffff:ffff,DE -2001:6f8:10f2:8000::,2001:6f8:11ab:ffff:ffff:ffff:ffff:ffff,GB -2001:6f8:11ac::,2001:6f8:11ac:7fff:ffff:ffff:ffff:ffff,DE -2001:6f8:11ac:8000::,2001:6f8:11b1:ffff:ffff:ffff:ffff:ffff,GB -2001:6f8:11b2::,2001:6f8:11b2:7fff:ffff:ffff:ffff:ffff,AT -2001:6f8:11b2:8000::,2001:6f8:11cf:ffff:ffff:ffff:ffff:ffff,GB -2001:6f8:11d0::,2001:6f8:11d0:7fff:ffff:ffff:ffff:ffff,DE -2001:6f8:11d0:8000::,2001:6f8:12ca:7fff:ffff:ffff:ffff:ffff,GB -2001:6f8:12ca:8000::,2001:6f8:12ca:ffff:ffff:ffff:ffff:ffff,DE -2001:6f8:12cb::,2001:6f8:12d8:ffff:ffff:ffff:ffff:ffff,GB +2001:6f8:400::,2001:6f8:900:7fff:ffff:ffff:ffff:ffff,GB +2001:6f8:900:8000::,2001:6f8:900:ffff:ffff:ffff:ffff:ffff,DE +2001:6f8:901::,2001:6f8:12d8:ffff:ffff:ffff:ffff:ffff,GB 2001:6f8:12d9::,2001:6f8:12d9:7fff:ffff:ffff:ffff:ffff,DE -2001:6f8:12d9:8000::,2001:6f8:13e0:ffff:ffff:ffff:ffff:ffff,GB -2001:6f8:13e1::,2001:6f8:13e1:7fff:ffff:ffff:ffff:ffff,DE -2001:6f8:13e1:8000::,2001:6f8:13ff:ffff:ffff:ffff:ffff:ffff,GB +2001:6f8:12d9:8000::,2001:6f8:13ff:ffff:ffff:ffff:ffff:ffff,GB 2001:6f8:1400::,2001:6f8:14ff:ffff:ffff:ffff:ffff:ffff,BE -2001:6f8:1500::,2001:6f8:1c8a:ffff:ffff:ffff:ffff:ffff,GB -2001:6f8:1c8b::,2001:6f8:1c8b:7fff:ffff:ffff:ffff:ffff,DE -2001:6f8:1c8b:8000::,2001:6f8:1cba:ffff:ffff:ffff:ffff:ffff,GB -2001:6f8:1cbb::,2001:6f8:1cbb:7fff:ffff:ffff:ffff:ffff,DE -2001:6f8:1cbb:8000::,2001:6f8:1d57:ffff:ffff:ffff:ffff:ffff,GB +2001:6f8:1500::,2001:6f8:1c00:7fff:ffff:ffff:ffff:ffff,GB +2001:6f8:1c00:8000::,2001:6f8:1c00:ffff:ffff:ffff:ffff:ffff,DE +2001:6f8:1c01::,2001:6f8:1d57:ffff:ffff:ffff:ffff:ffff,GB 2001:6f8:1d58::,2001:6f8:1d58:7fff:ffff:ffff:ffff:ffff,DE -2001:6f8:1d58:8000::,2001:6f8:1d69:ffff:ffff:ffff:ffff:ffff,GB -2001:6f8:1d6a::,2001:6f8:1d6a:7fff:ffff:ffff:ffff:ffff,DE -2001:6f8:1d6a:8000::,2001:6f8:ffff:ffff:ffff:ffff:ffff:ffff,GB +2001:6f8:1d58:8000::,2001:6f8:ffff:ffff:ffff:ffff:ffff:ffff,GB 2001:700::,2001:700:ffff:ffff:ffff:ffff:ffff:ffff,NO 2001:708::,2001:708:ffff:ffff:ffff:ffff:ffff:ffff,FI 2001:710::,2001:710:ffff:ffff:ffff:ffff:ffff:ffff,GB @@ -3031,7 +2605,9 @@ 2001:7b8::,2001:7bf:ffff:ffff:ffff:ffff:ffff:ffff,NL 2001:7c0::,2001:7c7:ffff:ffff:ffff:ffff:ffff:ffff,DE 2001:7c8::,2001:7c8:ffff:ffff:ffff:ffff:ffff:ffff,IE -2001:7d0::,2001:7d0:ffff:ffff:ffff:ffff:ffff:ffff,EE +2001:7d0::,2001:7d0:8cc1:7fff:ffff:ffff:ffff:ffff,EE +2001:7d0:8cc1:8000::,2001:7d0:8cc1:ffff:ffff:ffff:ffff:ffff,GB +2001:7d0:8cc2::,2001:7d0:ffff:ffff:ffff:ffff:ffff:ffff,EE 2001:7d8::,2001:7d8:ffff:ffff:ffff:ffff:ffff:ffff,DE 2001:7e0::,2001:7e0:ffff:ffff:ffff:ffff:ffff:ffff,GB 2001:7e8::,2001:7e8:ffff:ffff:ffff:ffff:ffff:ffff,LU @@ -3039,6 +2615,7 @@ 2001:7f8:1::,2001:7f8:1:ffff:ffff:ffff:ffff:ffff,NL 2001:7f8:2::,2001:7f8:2:ffff:ffff:ffff:ffff:ffff,IT 2001:7f8:3::,2001:7f8:4:ffff:ffff:ffff:ffff:ffff,GB +2001:7f8:5::,2001:7f8:5:ffff:ffff:ffff:ffff:ffff,RU 2001:7f8:6::,2001:7f8:6:ffff:ffff:ffff:ffff:ffff,BG 2001:7f8:7::,2001:7f8:7:ffff:ffff:ffff:ffff:ffff,FI 2001:7f8:8::,2001:7f8:8:ffff:ffff:ffff:ffff:ffff,DE @@ -3083,6 +2660,7 @@ 2001:7f8:31::,2001:7f8:31:ffff:ffff:ffff:ffff:ffff,NL 2001:7f8:32::,2001:7f8:32:ffff:ffff:ffff:ffff:ffff,IT 2001:7f8:33::,2001:7f8:33:ffff:ffff:ffff:ffff:ffff,DE +2001:7f8:34::,2001:7f8:34:ffff:ffff:ffff:ffff:ffff,FR 2001:7f8:35::,2001:7f8:35:ffff:ffff:ffff:ffff:ffff,HU 2001:7f8:36::,2001:7f8:36:ffff:ffff:ffff:ffff:ffff,FR 2001:7f8:37::,2001:7f8:38:ffff:ffff:ffff:ffff:ffff,SE @@ -3119,6 +2697,7 @@ 2001:7f8:59::,2001:7f8:59:ffff:ffff:ffff:ffff:ffff,FR 2001:7f8:5a::,2001:7f8:5a:ffff:ffff:ffff:ffff:ffff,BY 2001:7f8:5b::,2001:7f8:5b:ffff:ffff:ffff:ffff:ffff,PL +2001:7f8:5c::,2001:7f8:5c:ffff:ffff:ffff:ffff:ffff,RU 2001:7f8:5d::,2001:7f8:5d:ffff:ffff:ffff:ffff:ffff,UA 2001:7f8:5e::,2001:7f8:5e:ffff:ffff:ffff:ffff:ffff,CZ 2001:7f8:5f::,2001:7f8:5f:ffff:ffff:ffff:ffff:ffff,IT @@ -3180,6 +2759,7 @@ 2001:7f8:9b::,2001:7f8:9b:ffff:ffff:ffff:ffff:ffff,PL 2001:7f8:9c::,2001:7f8:9e:ffff:ffff:ffff:ffff:ffff,DE 2001:7f8:9f::,2001:7f8:9f:ffff:ffff:ffff:ffff:ffff,BG +2001:7f8:a0::,2001:7f8:a0:ffff:ffff:ffff:ffff:ffff,ES 2001:7fa:0:1::,2001:7fa::1:ffff:ffff:ffff:ffff,HK 2001:7fa:0:2::,2001:7fa::2:ffff:ffff:ffff:ffff,KR 2001:7fa:0:3::,2001:7fa::3:ffff:ffff:ffff:ffff,JP @@ -3194,6 +2774,7 @@ 2001:7fa:f::,2001:7fa:f:ffff:ffff:ffff:ffff:ffff,ID 2001:7fa:10::,2001:7fa:10:ffff:ffff:ffff:ffff:ffff,CN 2001:7fa:11::,2001:7fa:11:ffff:ffff:ffff:ffff:ffff,AU +2001:7fc::,2001:7fc:1:ffff:ffff:ffff:ffff:ffff,DE 2001:7fe::,2001:7fe:ffff:ffff:ffff:ffff:ffff:ffff,SE 2001:808::,2001:80f:ffff:ffff:ffff:ffff:ffff:ffff,PL 2001:810::,2001:810:ffff:ffff:ffff:ffff:ffff:ffff,FR @@ -3214,15 +2795,11 @@ 2001:888::,2001:88f:ffff:ffff:ffff:ffff:ffff:ffff,NL 2001:890::,2001:891:ffff:ffff:ffff:ffff:ffff:ffff,AT 2001:898::,2001:89f:ffff:ffff:ffff:ffff:ffff:ffff,NL -2001:8a0::,2001:8a0:5f5e:ffff:ffff:ffff:ffff:ffff,PT -2001:8a0:5f5f::,2001:8a0:5f5f:7fff:ffff:ffff:ffff:ffff,DE -2001:8a0:5f5f:8000::,2001:8a0:ddae:7fff:ffff:ffff:ffff:ffff,PT -2001:8a0:ddae:8000::,2001:8a0:ddae:ffff:ffff:ffff:ffff:ffff,AU -2001:8a0:ddaf::,2001:8a7:ffff:ffff:ffff:ffff:ffff:ffff,PT +2001:8a0::,2001:8a7:ffff:ffff:ffff:ffff:ffff:ffff,PT 2001:8a8::,2001:8a8:ffff:ffff:ffff:ffff:ffff:ffff,CH 2001:8b0::,2001:8b0:ffff:ffff:ffff:ffff:ffff:ffff,GB 2001:8b8::,2001:8bf:ffff:ffff:ffff:ffff:ffff:ffff,FI -2001:8c0::,2001:8c0:ffff:ffff:ffff:ffff:ffff:ffff,NO +2001:8c0::,2001:8c7:ffff:ffff:ffff:ffff:ffff:ffff,NO 2001:8c8::,2001:8c8:ffff:ffff:ffff:ffff:ffff:ffff,RS 2001:8d0::,2001:8d0:ffff:ffff:ffff:ffff:ffff:ffff,IT 2001:8d8::,2001:8d8:ffff:ffff:ffff:ffff:ffff:ffff,DE @@ -3235,19 +2812,9 @@ 2001:918::,2001:918:ffff:ffff:ffff:ffff:ffff:ffff,CH 2001:920::,2001:920:1845:ffff:ffff:ffff:ffff:ffff,GB 2001:920:1846::,2001:920:1846:7fff:ffff:ffff:ffff:ffff,DE -2001:920:1846:8000::,2001:920:186a:ffff:ffff:ffff:ffff:ffff,GB -2001:920:186b::,2001:920:186b:ffff:ffff:ffff:ffff:ffff,DE -2001:920:186c::,2001:920:187f:ffff:ffff:ffff:ffff:ffff,GB -2001:920:1880::,2001:920:1880:7fff:ffff:ffff:ffff:ffff,DE -2001:920:1880:8000::,2001:920:18a0:ffff:ffff:ffff:ffff:ffff,GB -2001:920:18a1::,2001:920:18a1:7fff:ffff:ffff:ffff:ffff,DE -2001:920:18a1:8000::,2001:920:18ad:ffff:ffff:ffff:ffff:ffff,GB +2001:920:1846:8000::,2001:920:18ad:ffff:ffff:ffff:ffff:ffff,GB 2001:920:18ae::,2001:920:18ae:7fff:ffff:ffff:ffff:ffff,DE -2001:920:18ae:8000::,2001:920:18bf:ffff:ffff:ffff:ffff:ffff,GB -2001:920:18c0::,2001:920:18c0:7fff:ffff:ffff:ffff:ffff,DE -2001:920:18c0:8000::,2001:920:18c0:ffff:ffff:ffff:ffff:ffff,GB -2001:920:18c1::,2001:920:18c1:7fff:ffff:ffff:ffff:ffff,DE -2001:920:18c1:8000::,2001:920:5809:ffff:ffff:ffff:ffff:ffff,GB +2001:920:18ae:8000::,2001:920:5809:ffff:ffff:ffff:ffff:ffff,GB 2001:920:580a::,2001:920:580a:7fff:ffff:ffff:ffff:ffff,ES 2001:920:580a:8000::,2001:920:5845:ffff:ffff:ffff:ffff:ffff,GB 2001:920:5846::,2001:920:5846:ffff:ffff:ffff:ffff:ffff,ES @@ -3265,16 +2832,14 @@ 2001:978:2:39::5:2,2001:978:2:39::5:2,SI 2001:978:2:39::5:3,2001:978:1200:ffff:ffff:ffff:ffff:ffff,DE 2001:978:1201::,2001:978:1201:7fff:ffff:ffff:ffff:ffff,ES -2001:978:1201:8000::,2001:978:22ff:ffff:ffff:ffff:ffff:ffff,DE -2001:978:2300::,2001:978:2300:7fff:ffff:ffff:ffff:ffff,GB -2001:978:2300:8000::,2001:978:29ff:ffff:ffff:ffff:ffff:ffff,DE +2001:978:1201:8000::,2001:978:2300:2ff:ffff:ffff:ffff:ffff,DE +2001:978:2300:300::,2001:978:2300:3ff:ffff:ffff:ffff:ffff,GB +2001:978:2300:400::,2001:978:29ff:ffff:ffff:ffff:ffff:ffff,DE 2001:978:2a00::,2001:978:2a00:ffff:ffff:ffff:ffff:ffff,IE -2001:978:2a01::,2001:978:3bff:ffff:ffff:ffff:ffff:ffff,DE -2001:978:3c00::,2001:978:3c00:7fff:ffff:ffff:ffff:ffff,NL -2001:978:3c00:8000::,2001:978:ffff:ffff:ffff:ffff:ffff:ffff,DE -2001:980::,2001:984:645a:ffff:ffff:ffff:ffff:ffff,NL -2001:984:645b::,2001:984:645b:7fff:ffff:ffff:ffff:ffff,US -2001:984:645b:8000::,2001:987:ffff:ffff:ffff:ffff:ffff:ffff,NL +2001:978:2a01::,2001:978:ffff:ffff:ffff:ffff:ffff:ffff,DE +2001:980::,2001:981:1c63:ffff:ffff:ffff:ffff:ffff,NL +2001:981:1c64::,2001:981:1c64:7fff:ffff:ffff:ffff:ffff,CA +2001:981:1c64:8000::,2001:987:ffff:ffff:ffff:ffff:ffff:ffff,NL 2001:988::,2001:988:ffff:ffff:ffff:ffff:ffff:ffff,FR 2001:990::,2001:990:ffff:ffff:ffff:ffff:ffff:ffff,NL 2001:998::,2001:99b:ffff:ffff:ffff:ffff:ffff:ffff,FI @@ -3311,7 +2876,12 @@ 2001:aa8::,2001:ab7:ffff:ffff:ffff:ffff:ffff:ffff,DE 2001:ab8::,2001:ab8:ffff:ffff:ffff:ffff:ffff:ffff,FR 2001:ac0::,2001:ac7:ffff:ffff:ffff:ffff:ffff:ffff,ES -2001:ac8::,2001:ac8:ffff:ffff:ffff:ffff:ffff:ffff,GB +2001:ac8::,2001:ac8:20::ffff:ffff:ffff:ffff,GB +2001:ac8:20:1::,2001:ac8:20:1:ffff:ffff:ffff:ffff,DE +2001:ac8:20:2::,2001:ac8:27:ffff:ffff:ffff:ffff:ffff,GB +2001:ac8:28::,2001:ac8:28:ffff:ffff:ffff:ffff:ffff,CH +2001:ac8:29::,2001:ac8:29:ffff:ffff:ffff:ffff:ffff,AT +2001:ac8:2a::,2001:ac8:ffff:ffff:ffff:ffff:ffff:ffff,GB 2001:ad0::,2001:ad0:ffff:ffff:ffff:ffff:ffff:ffff,EE 2001:ad8::,2001:ae1:ffff:ffff:ffff:ffff:ffff:ffff,DE 2001:ae8::,2001:ae8:ffff:ffff:ffff:ffff:ffff:ffff,CZ @@ -3343,13 +2913,9 @@ 2001:bd0::,2001:bd0:ffff:ffff:ffff:ffff:ffff:ffff,GB 2001:be0::,2001:be7:ffff:ffff:ffff:ffff:ffff:ffff,GB 2001:be8::,2001:be8:ffff:ffff:ffff:ffff:ffff:ffff,SE -2001:bf0::,2001:bf7:10f:ffff:ffff:ffff:ffff:ffff,DE -2001:bf7:110::,2001:bf7:110:7fff:ffff:ffff:ffff:ffff,NL -2001:bf7:110:8000::,2001:bf7:130f:ffff:ffff:ffff:ffff:ffff,DE +2001:bf0::,2001:bf7:130f:ffff:ffff:ffff:ffff:ffff,DE 2001:bf7:1310::,2001:bf7:1310:7fff:ffff:ffff:ffff:ffff,NL -2001:bf7:1310:8000::,2001:bf7:131f:ffff:ffff:ffff:ffff:ffff,DE -2001:bf7:1320::,2001:bf7:1320:7fff:ffff:ffff:ffff:ffff,NL -2001:bf7:1320:8000::,2001:bf7:ffff:ffff:ffff:ffff:ffff:ffff,DE +2001:bf7:1310:8000::,2001:bf7:ffff:ffff:ffff:ffff:ffff:ffff,DE 2001:bf8::,2001:bf8:ffff:ffff:ffff:ffff:ffff:ffff,IL 2001:c00::,2001:c00:ffff:ffff:ffff:ffff:ffff:ffff,TH 2001:c08::,2001:c08:ffff:ffff:ffff:ffff:ffff:ffff,TW @@ -3395,9 +2961,7 @@ 2001:d58::,2001:d58:ffff:ffff:ffff:ffff:ffff:ffff,TW 2001:d68::,2001:d68:ffff:ffff:ffff:ffff:ffff:ffff,ID 2001:d70::,2001:d73:ffff:ffff:ffff:ffff:ffff:ffff,JP -2001:d80::,2001:d80:e07f:ffff:ffff:ffff:ffff:ffff,JP -2001:d80:e080::,2001:d80:e080:7fff:ffff:ffff:ffff:ffff,CN -2001:d80:e080:8000::,2001:d80:ffff:ffff:ffff:ffff:ffff:ffff,JP +2001:d80::,2001:d80:ffff:ffff:ffff:ffff:ffff:ffff,JP 2001:d88::,2001:d88:ffff:ffff:ffff:ffff:ffff:ffff,JP 2001:d90::,2001:d90:ffff:ffff:ffff:ffff:ffff:ffff,JP 2001:d98::,2001:d98:ffff:ffff:ffff:ffff:ffff:ffff,SG @@ -3690,7 +3254,6 @@ 2001:df0:26c::,2001:df0:26c:ffff:ffff:ffff:ffff:ffff,SG 2001:df0:26d::,2001:df0:26f:ffff:ffff:ffff:ffff:ffff,ID 2001:df0:270::,2001:df0:270:ffff:ffff:ffff:ffff:ffff,IN -2001:df0:271::,2001:df0:271:ffff:ffff:ffff:ffff:ffff,AU 2001:df0:272::,2001:df0:272:ffff:ffff:ffff:ffff:ffff,MY 2001:df0:273::,2001:df0:273:ffff:ffff:ffff:ffff:ffff,ID 2001:df0:274::,2001:df0:277:ffff:ffff:ffff:ffff:ffff,NP @@ -3869,48 +3432,94 @@ 2001:df0:2c00::,2001:df0:2c00:ffff:ffff:ffff:ffff:ffff,AU 2001:df0:2e00::,2001:df0:2e00:ffff:ffff:ffff:ffff:ffff,CN 2001:df0:3000::,2001:df0:3000:ffff:ffff:ffff:ffff:ffff,PH +2001:df0:3200::,2001:df0:3200:ffff:ffff:ffff:ffff:ffff,PK +2001:df0:3600::,2001:df0:3600:ffff:ffff:ffff:ffff:ffff,SG 2001:df0:3800::,2001:df0:3800:ffff:ffff:ffff:ffff:ffff,MY +2001:df0:3a00::,2001:df0:3a00:ffff:ffff:ffff:ffff:ffff,IN 2001:df0:3c00::,2001:df0:3c00:ffff:ffff:ffff:ffff:ffff,AU +2001:df0:3e00::,2001:df0:3e00:ffff:ffff:ffff:ffff:ffff,AU 2001:df0:4000::,2001:df0:4000:ffff:ffff:ffff:ffff:ffff,HK +2001:df0:4200::,2001:df0:4200:ffff:ffff:ffff:ffff:ffff,AU 2001:df0:4400::,2001:df0:4400:ffff:ffff:ffff:ffff:ffff,ID +2001:df0:4600::,2001:df0:4600:ffff:ffff:ffff:ffff:ffff,SG 2001:df0:4800::,2001:df0:4800:ffff:ffff:ffff:ffff:ffff,HK +2001:df0:4a00::,2001:df0:4a00:ffff:ffff:ffff:ffff:ffff,PK +2001:df0:4e00::,2001:df0:4e00:ffff:ffff:ffff:ffff:ffff,TW 2001:df0:5000::,2001:df0:5000:ffff:ffff:ffff:ffff:ffff,IN +2001:df0:5200::,2001:df0:5200:ffff:ffff:ffff:ffff:ffff,IN 2001:df0:5400::,2001:df0:5400:ffff:ffff:ffff:ffff:ffff,AU +2001:df0:5600::,2001:df0:5600:ffff:ffff:ffff:ffff:ffff,MY 2001:df0:5800::,2001:df0:5800:ffff:ffff:ffff:ffff:ffff,ID +2001:df0:5a00::,2001:df0:5a00:ffff:ffff:ffff:ffff:ffff,BD 2001:df0:5c00::,2001:df0:5c00:ffff:ffff:ffff:ffff:ffff,BD +2001:df0:5e00::,2001:df0:5e00:ffff:ffff:ffff:ffff:ffff,AU 2001:df0:6000::,2001:df0:6000:ffff:ffff:ffff:ffff:ffff,IN +2001:df0:6200::,2001:df0:6200:ffff:ffff:ffff:ffff:ffff,MY 2001:df0:6400::,2001:df0:6400:ffff:ffff:ffff:ffff:ffff,SG +2001:df0:6600::,2001:df0:6600:ffff:ffff:ffff:ffff:ffff,SG 2001:df0:6800::,2001:df0:6800:ffff:ffff:ffff:ffff:ffff,JP +2001:df0:6a00::,2001:df0:6a00:ffff:ffff:ffff:ffff:ffff,HK +2001:df0:6e00::,2001:df0:6e00:ffff:ffff:ffff:ffff:ffff,BD 2001:df0:7000::,2001:df0:7000:ffff:ffff:ffff:ffff:ffff,AU +2001:df0:7200::,2001:df0:7200:ffff:ffff:ffff:ffff:ffff,HK 2001:df0:7400::,2001:df0:7400:ffff:ffff:ffff:ffff:ffff,IN -2001:df0:7800::,2001:df0:7800:ffff:ffff:ffff:ffff:ffff,WS +2001:df0:7600::,2001:df0:7600:ffff:ffff:ffff:ffff:ffff,IN +2001:df0:7a00::,2001:df0:7a00:ffff:ffff:ffff:ffff:ffff,TL 2001:df0:7c00::,2001:df0:7c00:ffff:ffff:ffff:ffff:ffff,HK +2001:df0:7e00::,2001:df0:7e00:ffff:ffff:ffff:ffff:ffff,SG 2001:df0:8000::,2001:df0:8000:ffff:ffff:ffff:ffff:ffff,IN +2001:df0:8200::,2001:df0:8200:ffff:ffff:ffff:ffff:ffff,AU 2001:df0:8400::,2001:df0:8400:ffff:ffff:ffff:ffff:ffff,IN +2001:df0:8600::,2001:df0:8600:ffff:ffff:ffff:ffff:ffff,IN 2001:df0:8800::,2001:df0:8800:ffff:ffff:ffff:ffff:ffff,IN +2001:df0:8a00::,2001:df0:8a00:ffff:ffff:ffff:ffff:ffff,NP 2001:df0:8c00::,2001:df0:8c00:ffff:ffff:ffff:ffff:ffff,MY +2001:df0:8e00::,2001:df0:8e00:ffff:ffff:ffff:ffff:ffff,HK +2001:df0:9200::,2001:df0:9200:ffff:ffff:ffff:ffff:ffff,MM 2001:df0:9400::,2001:df0:9400:ffff:ffff:ffff:ffff:ffff,HK +2001:df0:9600::,2001:df0:9600:ffff:ffff:ffff:ffff:ffff,IN 2001:df0:9800::,2001:df0:9800:ffff:ffff:ffff:ffff:ffff,IN +2001:df0:9a00::,2001:df0:9a00:ffff:ffff:ffff:ffff:ffff,CN 2001:df0:9c00::,2001:df0:9c00:ffff:ffff:ffff:ffff:ffff,AU +2001:df0:9e00::,2001:df0:9e00:ffff:ffff:ffff:ffff:ffff,ID 2001:df0:a000::,2001:df0:a000:ffff:ffff:ffff:ffff:ffff,AU +2001:df0:a200::,2001:df0:a200:ffff:ffff:ffff:ffff:ffff,ID 2001:df0:a400::,2001:df0:a400:ffff:ffff:ffff:ffff:ffff,AU +2001:df0:a600::,2001:df0:a600:ffff:ffff:ffff:ffff:ffff,AU 2001:df0:a800::,2001:df0:a800:ffff:ffff:ffff:ffff:ffff,AU +2001:df0:aa00::,2001:df0:aa00:ffff:ffff:ffff:ffff:ffff,SG 2001:df0:ac00::,2001:df0:ac00:ffff:ffff:ffff:ffff:ffff,NZ +2001:df0:ae00::,2001:df0:ae00:ffff:ffff:ffff:ffff:ffff,NZ 2001:df0:b000::,2001:df0:b000:ffff:ffff:ffff:ffff:ffff,NZ +2001:df0:b200::,2001:df0:b200:ffff:ffff:ffff:ffff:ffff,SG 2001:df0:b400::,2001:df0:b400:ffff:ffff:ffff:ffff:ffff,JP +2001:df0:b600::,2001:df0:b600:ffff:ffff:ffff:ffff:ffff,BD 2001:df0:b800::,2001:df0:b800:ffff:ffff:ffff:ffff:ffff,PH +2001:df0:ba00::,2001:df0:ba00:ffff:ffff:ffff:ffff:ffff,IN 2001:df0:bc00::,2001:df0:bc00:ffff:ffff:ffff:ffff:ffff,AU +2001:df0:be00::,2001:df0:be00:ffff:ffff:ffff:ffff:ffff,MY 2001:df0:c000::,2001:df0:c000:ffff:ffff:ffff:ffff:ffff,HK +2001:df0:c200::,2001:df0:c200:ffff:ffff:ffff:ffff:ffff,AU 2001:df0:c400::,2001:df0:c400:ffff:ffff:ffff:ffff:ffff,IN +2001:df0:c600::,2001:df0:c600:ffff:ffff:ffff:ffff:ffff,IN 2001:df0:c800::,2001:df0:c800:ffff:ffff:ffff:ffff:ffff,AU +2001:df0:ca00::,2001:df0:ca00:ffff:ffff:ffff:ffff:ffff,AU 2001:df0:cc00::,2001:df0:cc00:ffff:ffff:ffff:ffff:ffff,ID +2001:df0:ce00::,2001:df0:ce00:ffff:ffff:ffff:ffff:ffff,ID 2001:df0:d000::,2001:df0:d000:ffff:ffff:ffff:ffff:ffff,IN +2001:df0:d200::,2001:df0:d200:ffff:ffff:ffff:ffff:ffff,MY 2001:df0:d400::,2001:df0:d400:ffff:ffff:ffff:ffff:ffff,HK +2001:df0:d600::,2001:df0:d600:ffff:ffff:ffff:ffff:ffff,MY 2001:df0:d800::,2001:df0:d800:ffff:ffff:ffff:ffff:ffff,AU 2001:df0:dc00::,2001:df0:dc00:ffff:ffff:ffff:ffff:ffff,HK +2001:df0:de00::,2001:df0:de00:ffff:ffff:ffff:ffff:ffff,IN +2001:df0:e200::,2001:df0:e200:ffff:ffff:ffff:ffff:ffff,AU 2001:df0:e400::,2001:df0:e400:ffff:ffff:ffff:ffff:ffff,IN +2001:df0:e600::,2001:df0:e600:ffff:ffff:ffff:ffff:ffff,SG 2001:df0:e800::,2001:df0:e800:ffff:ffff:ffff:ffff:ffff,AU +2001:df0:ea00::,2001:df0:ea00:ffff:ffff:ffff:ffff:ffff,ID 2001:df0:ec00::,2001:df0:ec00:ffff:ffff:ffff:ffff:ffff,IN +2001:df0:ee00::,2001:df0:ee00:ffff:ffff:ffff:ffff:ffff,ID 2001:df0:f000::,2001:df0:f000:ffff:ffff:ffff:ffff:ffff,HK 2001:df0:f400::,2001:df0:f401:ffff:ffff:ffff:ffff:ffff,IN 2001:df0:f800::,2001:df0:f800:ffff:ffff:ffff:ffff:ffff,ID @@ -3934,7 +3543,6 @@ 2001:df1:4800::,2001:df1:4800:ffff:ffff:ffff:ffff:ffff,IN 2001:df1:4c00::,2001:df1:4c00:ffff:ffff:ffff:ffff:ffff,HK 2001:df1:5000::,2001:df1:5000:ffff:ffff:ffff:ffff:ffff,HK -2001:df1:5400::,2001:df1:5400:ffff:ffff:ffff:ffff:ffff,KR 2001:df1:5800::,2001:df1:5800:ffff:ffff:ffff:ffff:ffff,BD 2001:df1:5c00::,2001:df1:5c00:ffff:ffff:ffff:ffff:ffff,ID 2001:df1:6000::,2001:df1:6000:ffff:ffff:ffff:ffff:ffff,SG @@ -3991,6 +3599,7 @@ 2001:df2:3400::,2001:df2:3400:ffff:ffff:ffff:ffff:ffff,NZ 2001:df2:3800::,2001:df2:3800:ffff:ffff:ffff:ffff:ffff,TH 2001:df2:3c00::,2001:df2:3c07:ffff:ffff:ffff:ffff:ffff,AU +2001:df2:4000::,2001:df2:4000:ffff:ffff:ffff:ffff:ffff,HK 2001:df2:4400::,2001:df2:4400:ffff:ffff:ffff:ffff:ffff,AU 2001:df2:4c00::,2001:df2:4c00:ffff:ffff:ffff:ffff:ffff,ID 2001:df2:5000::,2001:df2:5000:ffff:ffff:ffff:ffff:ffff,IN @@ -4218,7 +3827,7 @@ 2001:df5:f400::,2001:df5:f401:ffff:ffff:ffff:ffff:ffff,AU 2001:df5:f800::,2001:df5:f800:ffff:ffff:ffff:ffff:ffff,SG 2001:df5:fc00::,2001:df5:fc00:ffff:ffff:ffff:ffff:ffff,IN -2001:df6::,2001:df6:1:ffff:ffff:ffff:ffff:ffff,IN +2001:df6::,2001:df6:3:ffff:ffff:ffff:ffff:ffff,IN 2001:df6:400::,2001:df6:400:ffff:ffff:ffff:ffff:ffff,HK 2001:df6:800::,2001:df6:80f:ffff:ffff:ffff:ffff:ffff,HK 2001:df6:c00::,2001:df6:c00:ffff:ffff:ffff:ffff:ffff,TH @@ -4319,7 +3928,7 @@ 2001:df7:9800::,2001:df7:9800:ffff:ffff:ffff:ffff:ffff,NZ 2001:df7:9c00::,2001:df7:9c00:ffff:ffff:ffff:ffff:ffff,AU 2001:df7:a000::,2001:df7:a000:ffff:ffff:ffff:ffff:ffff,AU -2001:df7:a400::,2001:df7:a400:ffff:ffff:ffff:ffff:ffff,SG +2001:df7:a400::,2001:df7:a401:ffff:ffff:ffff:ffff:ffff,SG 2001:df7:a800::,2001:df7:a800:ffff:ffff:ffff:ffff:ffff,JP 2001:df7:ac00::,2001:df7:ac00:ffff:ffff:ffff:ffff:ffff,AU 2001:df7:b000::,2001:df7:b000:ffff:ffff:ffff:ffff:ffff,IN @@ -4343,7 +3952,7 @@ 2001:df7:f800::,2001:df7:f800:ffff:ffff:ffff:ffff:ffff,IN 2001:df7:fc00::,2001:df7:fc00:ffff:ffff:ffff:ffff:ffff,SG 2001:df8::,2001:df8:ffff:ffff:ffff:ffff:ffff:ffff,US -2001:df9::,2001:df9:ffff:ffff:ffff:ffff:ffff:ffff,ID +2001:df9::,2001:df9:ffff:ffff:ffff:ffff:ffff:ffff,NZ 2001:dfa::,2001:dfa:ffff:ffff:ffff:ffff:ffff:ffff,JP 2001:e00::,2001:e01:ffff:ffff:ffff:ffff:ffff:ffff,ID 2001:e08::,2001:e08:ffff:ffff:ffff:ffff:ffff:ffff,CN @@ -4510,9 +4119,7 @@ 2001:146a::,2001:146a::7fff:ffff:ffff:ffff:ffff,RU 2001:146a:0:8000::,2001:146a:81:ffff:ffff:ffff:ffff:ffff,CZ 2001:146a:82::,2001:146a:82:7fff:ffff:ffff:ffff:ffff,RU -2001:146a:82:8000::,2001:146a:98:ffff:ffff:ffff:ffff:ffff,CZ -2001:146a:99::,2001:146a:99:7fff:ffff:ffff:ffff:ffff,RU -2001:146a:99:8000::,2001:146f:ffff:ffff:ffff:ffff:ffff:ffff,CZ +2001:146a:82:8000::,2001:146f:ffff:ffff:ffff:ffff:ffff:ffff,CZ 2001:1470::,2001:1477:ffff:ffff:ffff:ffff:ffff:ffff,SI 2001:1478::,2001:1478:ffff:ffff:ffff:ffff:ffff:ffff,GB 2001:1488::,2001:1488:ffff:ffff:ffff:ffff:ffff:ffff,CZ @@ -4549,17 +4156,7 @@ 2001:15a8::,2001:15a8:ffff:ffff:ffff:ffff:ffff:ffff,IT 2001:15b0::,2001:15b0:ffff:ffff:ffff:ffff:ffff:ffff,NL 2001:15b8::,2001:15b8:ffff:ffff:ffff:ffff:ffff:ffff,NL -2001:15c0::,2001:15c0:65ff:7fff:ffff:ffff:ffff:ffff,SI -2001:15c0:65ff:8000::,2001:15c0:65ff:ffff:ffff:ffff:ffff:ffff,AT -2001:15c0:6600::,2001:15c0:665e:ffff:ffff:ffff:ffff:ffff,SI -2001:15c0:665f::,2001:15c0:665f:7fff:ffff:ffff:ffff:ffff,AT -2001:15c0:665f:8000::,2001:15c0:66a2:ffff:ffff:ffff:ffff:ffff,SI -2001:15c0:66a3::,2001:15c0:66a3:7fff:ffff:ffff:ffff:ffff,RO -2001:15c0:66a3:8000::,2001:15c0:67cc:ffff:ffff:ffff:ffff:ffff,SI -2001:15c0:67cd::,2001:15c0:67cd:7fff:ffff:ffff:ffff:ffff,AT -2001:15c0:67cd:8000::,2001:15c0:67d0:ffff:ffff:ffff:ffff:ffff,SI -2001:15c0:67d1::,2001:15c0:67d1:7fff:ffff:ffff:ffff:ffff,AT -2001:15c0:67d1:8000::,2001:15c7:ffff:ffff:ffff:ffff:ffff:ffff,SI +2001:15c0::,2001:15c7:ffff:ffff:ffff:ffff:ffff:ffff,SI 2001:15c8::,2001:15c8:ffff:ffff:ffff:ffff:ffff:ffff,NL 2001:15d8::,2001:15df:ffff:ffff:ffff:ffff:ffff:ffff,PT 2001:15e0::,2001:15e0:ffff:ffff:ffff:ffff:ffff:ffff,GB @@ -4584,37 +4181,17 @@ 2001:1688::,2001:168f:ffff:ffff:ffff:ffff:ffff:ffff,SI 2001:1690::,2001:1690:ffff:ffff:ffff:ffff:ffff:ffff,NL 2001:1698::,2001:1698:ffff:ffff:ffff:ffff:ffff:ffff,LU -2001:16a0::,2001:16a2:1d14:7fff:ffff:ffff:ffff:ffff,SA -2001:16a2:1d14:8000::,2001:16a2:1d14:ffff:ffff:ffff:ffff:ffff,US -2001:16a2:1d15::,2001:16a2:a5bf:7fff:ffff:ffff:ffff:ffff,SA -2001:16a2:a5bf:8000::,2001:16a2:a5bf:ffff:ffff:ffff:ffff:ffff,GB -2001:16a2:a5c0::,2001:16a7:ffff:ffff:ffff:ffff:ffff:ffff,SA +2001:16a0::,2001:16a7:ffff:ffff:ffff:ffff:ffff:ffff,SA 2001:16a8::,2001:16a8:ffff:ffff:ffff:ffff:ffff:ffff,IT 2001:16b0::,2001:16b0:ffff:ffff:ffff:ffff:ffff:ffff,PL 2001:16b8::,2001:16b8:ffff:ffff:ffff:ffff:ffff:ffff,DE -2001:16c0::,2001:16c0:1233:ffff:ffff:ffff:ffff:ffff,IR -2001:16c0:1234::,2001:16c0:1234:7fff:ffff:ffff:ffff:ffff,AU -2001:16c0:1234:8000::,2001:16c7:ffff:ffff:ffff:ffff:ffff:ffff,IR +2001:16c0::,2001:16c7:ffff:ffff:ffff:ffff:ffff:ffff,IR 2001:16d0::,2001:16d0:ffff:ffff:ffff:ffff:ffff:ffff,IT -2001:16d8::,2001:16d8:dcff:ffff:ffff:ffff:ffff:ffff,SE -2001:16d8:dd00::,2001:16d8:dd00:ffff:ffff:ffff:ffff:ffff,DK -2001:16d8:dd01::,2001:16d8:dd72:ffff:ffff:ffff:ffff:ffff,SE -2001:16d8:dd73::,2001:16d8:dd73:7fff:ffff:ffff:ffff:ffff,DK -2001:16d8:dd73:8000::,2001:16d8:dd84:ffff:ffff:ffff:ffff:ffff,SE -2001:16d8:dd85::,2001:16d8:dd85:7fff:ffff:ffff:ffff:ffff,DK -2001:16d8:dd85:8000::,2001:16d8:dda3:ffff:ffff:ffff:ffff:ffff,SE +2001:16d8::,2001:16d8:dd43:ffff:ffff:ffff:ffff:ffff,SE +2001:16d8:dd44::,2001:16d8:dd44:7fff:ffff:ffff:ffff:ffff,DK +2001:16d8:dd44:8000::,2001:16d8:dda3:ffff:ffff:ffff:ffff:ffff,SE 2001:16d8:dda4::,2001:16d8:dda4:7fff:ffff:ffff:ffff:ffff,DK -2001:16d8:dda4:8000::,2001:16d8:ddc1:ffff:ffff:ffff:ffff:ffff,SE -2001:16d8:ddc2::,2001:16d8:ddc2:7fff:ffff:ffff:ffff:ffff,DK -2001:16d8:ddc2:8000::,2001:16d8:ddd6:ffff:ffff:ffff:ffff:ffff,SE -2001:16d8:ddd7::,2001:16d8:ddd7:7fff:ffff:ffff:ffff:ffff,DK -2001:16d8:ddd7:8000::,2001:16d8:ee00:7fff:ffff:ffff:ffff:ffff,SE -2001:16d8:ee00:8000::,2001:16d8:ee00:ffff:ffff:ffff:ffff:ffff,NO -2001:16d8:ee01::,2001:16d8:ee8f:7fff:ffff:ffff:ffff:ffff,SE -2001:16d8:ee8f:8000::,2001:16d8:ee8f:ffff:ffff:ffff:ffff:ffff,NO -2001:16d8:ee90::,2001:16d8:eeca:ffff:ffff:ffff:ffff:ffff,SE -2001:16d8:eecb::,2001:16d8:eecb:7fff:ffff:ffff:ffff:ffff,NO -2001:16d8:eecb:8000::,2001:16d8:ffff:ffff:ffff:ffff:ffff:ffff,SE +2001:16d8:dda4:8000::,2001:16d8:ffff:ffff:ffff:ffff:ffff:ffff,SE 2001:16e0::,2001:16e7:ffff:ffff:ffff:ffff:ffff:ffff,DE 2001:16e8::,2001:16e8:ffff:ffff:ffff:ffff:ffff:ffff,NL 2001:16f0::,2001:16f7:ffff:ffff:ffff:ffff:ffff:ffff,DE @@ -4667,9 +4244,7 @@ 2001:1960::,2001:1960:ffff:ffff:ffff:ffff:ffff:ffff,US 2001:1968::,2001:1968:ffff:ffff:ffff:ffff:ffff:ffff,US 2001:1970::,2001:1970:ffff:ffff:ffff:ffff:ffff:ffff,CA -2001:1978::,2001:1978:10ff:ffff:ffff:ffff:ffff:ffff,US -2001:1978:1100::,2001:1978:1100:7fff:ffff:ffff:ffff:ffff,CA -2001:1978:1100:8000::,2001:1978:ffff:ffff:ffff:ffff:ffff:ffff,US +2001:1978::,2001:1978:ffff:ffff:ffff:ffff:ffff:ffff,US 2001:1980::,2001:1980:ffff:ffff:ffff:ffff:ffff:ffff,US 2001:1988::,2001:1988:ffff:ffff:ffff:ffff:ffff:ffff,US 2001:1990::,2001:1990:ffff:ffff:ffff:ffff:ffff:ffff,US @@ -4689,12 +4264,12 @@ 2001:19f0:5001::,2001:19f0:5800:7fff:ffff:ffff:ffff:ffff,US 2001:19f0:5800:8000::,2001:19f0:5800:ffff:ffff:ffff:ffff:ffff,AU 2001:19f0:5801::,2001:19f0:67ff:ffff:ffff:ffff:ffff:ffff,US -2001:19f0:6800::,2001:19f0:6800:87ff:ffff:ffff:ffff:ffff,FR -2001:19f0:6800:8800::,2001:19f0:6c00:7fff:ffff:ffff:ffff:ffff,US +2001:19f0:6800::,2001:19f0:6800:ffff:ffff:ffff:ffff:ffff,FR +2001:19f0:6801::,2001:19f0:6c00:7fff:ffff:ffff:ffff:ffff,US 2001:19f0:6c00:8000::,2001:19f0:6c00:ffff:ffff:ffff:ffff:ffff,DE -2001:19f0:6c01::,2001:19f0:7000:9bc8:ffff:ffff:ffff:ffff,US -2001:19f0:7000:9bc9::,2001:19f0:7000:9bc9:ffff:ffff:ffff:ffff,JP -2001:19f0:7000:9bca::,2001:19f0:7400:7fff:ffff:ffff:ffff:ffff,US +2001:19f0:6c01::,2001:19f0:7000:7fff:ffff:ffff:ffff:ffff,US +2001:19f0:7000:8000::,2001:19f0:7000:ffff:ffff:ffff:ffff:ffff,JP +2001:19f0:7001::,2001:19f0:7400:7fff:ffff:ffff:ffff:ffff,US 2001:19f0:7400:8000::,2001:19f0:7400:ffff:ffff:ffff:ffff:ffff,GB 2001:19f0:7401::,2001:19f0:7401:7fff:ffff:ffff:ffff:ffff,US 2001:19f0:7401:8000::,2001:19f0:7401:ffff:ffff:ffff:ffff:ffff,GB @@ -4765,111 +4340,58 @@ 2001:1bf0::,2001:1bf7:ffff:ffff:ffff:ffff:ffff:ffff,EE 2001:1bf8::,2001:1bf8:ffff:ffff:ffff:ffff:ffff:ffff,LV 2001:1c00::,2001:1dff:ffff:ffff:ffff:ffff:ffff:ffff,NL -2001:2002:2f8::,2001:2002:2f8:7fff:ffff:ffff:ffff:ffff,SE -2001:2002:2f9:8000::,2001:2002:2f9:ffff:ffff:ffff:ffff:ffff,SE +2001:2002:2f8::,2001:2002:2f8:ffff:ffff:ffff:ffff:ffff,SE 2001:2002:3e14:8000::,2001:2002:3e14:ffff:ffff:ffff:ffff:ffff,SE 2001:2002:4e42::,2001:2002:4e42:7fff:ffff:ffff:ffff:ffff,SE -2001:2002:4e43::,2001:2002:4e44:7fff:ffff:ffff:ffff:ffff,SE -2001:2002:4e45::,2001:2002:4e45:7fff:ffff:ffff:ffff:ffff,SE -2001:2002:4e48::,2001:2002:4e48:afff:ffff:ffff:ffff:ffff,SE -2001:2002:4e49::,2001:2002:4e49:ffff:ffff:ffff:ffff:ffff,SE -2001:2002:51e0::,2001:2002:51e1:7fff:ffff:ffff:ffff:ffff,SE +2001:2002:4e44:8000::,2001:2002:4e44:bfff:ffff:ffff:ffff:ffff,SE +2001:2002:4e45::,2001:2002:4e45:bfff:ffff:ffff:ffff:ffff,SE +2001:2002:4e46::,2001:2002:4e46:7fff:ffff:ffff:ffff:ffff,SE +2001:2002:4e48:4000::,2001:2002:4e48:7fff:ffff:ffff:ffff:ffff,SE +2001:2002:4e49::,2001:2002:4e49:3fff:ffff:ffff:ffff:ffff,SE +2001:2002:4e49:6000::,2001:2002:4e49:ffff:ffff:ffff:ffff:ffff,SE +2001:2002:51e0::,2001:2002:51e0:ffff:ffff:ffff:ffff:ffff,SE 2001:2002:51e2::,2001:2002:51e2:7fff:ffff:ffff:ffff:ffff,SE -2001:2002:51e3::,2001:2002:51e5:7fff:ffff:ffff:ffff:ffff,SE -2001:2002:51e6::,2001:2002:51e6:7fff:ffff:ffff:ffff:ffff,SE -2001:2002:51e7::,2001:2002:51e9:ffff:ffff:ffff:ffff:ffff,SE -2001:2002:51eb::,2001:2002:51eb:ffff:ffff:ffff:ffff:ffff,SE -2001:2002:51ec:8000::,2001:2002:51ec:ffff:ffff:ffff:ffff:ffff,SE +2001:2002:51e3::,2001:2002:51e3:7fff:ffff:ffff:ffff:ffff,SE +2001:2002:51e5::,2001:2002:51e5:7fff:ffff:ffff:ffff:ffff,SE +2001:2002:51e6::,2001:2002:51e6:ffff:ffff:ffff:ffff:ffff,SE +2001:2002:51e7:8000::,2001:2002:51e8:7fff:ffff:ffff:ffff:ffff,SE +2001:2002:51e9::,2001:2002:51ec:7fff:ffff:ffff:ffff:ffff,SE 2001:2002:51ed:8000::,2001:2002:51ed:ffff:ffff:ffff:ffff:ffff,SE 2001:2002:5ae0::,2001:2002:5ae1:7fff:ffff:ffff:ffff:ffff,SE -2001:2002:5ae2::,2001:2002:5ae3:ffff:ffff:ffff:ffff:ffff,SE -2001:2002:5ae4:8000::,2001:2002:5ae4:ffff:ffff:ffff:ffff:ffff,SE -2001:2002:5ae5:8000::,2001:2002:5ae6:ffff:ffff:ffff:ffff:ffff,SE -2001:2002:c2ec:8000::,2001:2002:c2ec:ffff:ffff:ffff:ffff:ffff,SE -2001:2002:c343:8000::,2001:2002:c343:ffff:ffff:ffff:ffff:ffff,SE -2001:2002:c3c6::,2001:2002:c3c6:7fff:ffff:ffff:ffff:ffff,SE -2001:2002:c3fc::,2001:2002:c3fc:7fff:ffff:ffff:ffff:ffff,SE -2001:2002:d541::,2001:2002:d541:ffff:ffff:ffff:ffff:ffff,SE -2001:2002:d543::,2001:2002:d543:ffff:ffff:ffff:ffff:ffff,SE -2001:2002:d9d0::,2001:2002:d9d0:7fff:ffff:ffff:ffff:ffff,SE -2001:2002:d9d2::,2001:2002:d9d3:ffff:ffff:ffff:ffff:ffff,SE +2001:2002:5ae2:8000::,2001:2002:5ae3:7fff:ffff:ffff:ffff:ffff,SE +2001:2002:5ae3:a000::,2001:2002:5ae3:ffff:ffff:ffff:ffff:ffff,SE +2001:2002:5ae5:8000::,2001:2002:5ae6:7fff:ffff:ffff:ffff:ffff,SE +2001:2002:5ae7:8000::,2001:2002:5ae7:ffff:ffff:ffff:ffff:ffff,SE +2001:2002:d4b5:8000::,2001:2002:d4b5:ffff:ffff:ffff:ffff:ffff,SE +2001:2002:d540::,2001:2002:d540:ffff:ffff:ffff:ffff:ffff,SE +2001:2002:d541:8000::,2001:2002:d541:ffff:ffff:ffff:ffff:ffff,SE +2001:2002:d542:1000::,2001:2002:d542:1fff:ffff:ffff:ffff:ffff,SE +2001:2002:d543:4000::,2001:2002:d543:7fff:ffff:ffff:ffff:ffff,SE +2001:2002:d9d0:4000::,2001:2002:d9d0:7fff:ffff:ffff:ffff:ffff,SE +2001:2002:d9d2:8000::,2001:2002:d9d2:ffff:ffff:ffff:ffff:ffff,SE +2001:2002:d9d3:8000::,2001:2002:d9d3:ffff:ffff:ffff:ffff:ffff,SE 2001:2002:d9d4:8000::,2001:2002:d9d4:ffff:ffff:ffff:ffff:ffff,SE -2001:2002:d9d7::,2001:2002:d9d7:ffff:ffff:ffff:ffff:ffff,SE -2001:2003:50dc::,2001:2003:50df:7fff:ffff:ffff:ffff:ffff,FI -2001:2003:54f8:4000::,2001:2003:54fb:ffff:ffff:ffff:ffff:ffff,FI -2001:2003:58c0::,2001:2003:58c1:ffff:ffff:ffff:ffff:ffff,FI -2001:2003:58c3::,2001:2003:58c3:ffff:ffff:ffff:ffff:ffff,FI -2001:2003:f042:8000::,2001:2003:f042:ffff:ffff:ffff:ffff:ffff,FI -2001:2003:f05e:8000::,2001:2003:f05e:ffff:ffff:ffff:ffff:ffff,FI +2001:2003:50dc::,2001:2003:50dc:7fff:ffff:ffff:ffff:ffff,FI +2001:2003:54f9::,2001:2003:54f9:7fff:ffff:ffff:ffff:ffff,FI 2001:2003:f072:8000::,2001:2003:f072:ffff:ffff:ffff:ffff:ffff,FI -2001:2003:f0ab::,2001:2003:f0ab:7fff:ffff:ffff:ffff:ffff,FI -2001:2003:f0b6::,2001:2003:f0b6:7fff:ffff:ffff:ffff:ffff,FI -2001:2003:f0e5:8000::,2001:2003:f0e5:ffff:ffff:ffff:ffff:ffff,FI 2001:2003:f13d:8000::,2001:2003:f13d:ffff:ffff:ffff:ffff:ffff,FI -2001:2003:f19b::,2001:2003:f19b:7fff:ffff:ffff:ffff:ffff,FI -2001:2003:f19c:8000::,2001:2003:f19c:ffff:ffff:ffff:ffff:ffff,FI -2001:2003:f21a::,2001:2003:f21a:7fff:ffff:ffff:ffff:ffff,FI -2001:2003:f22c::,2001:2003:f22c:7fff:ffff:ffff:ffff:ffff,FI -2001:2003:f237::,2001:2003:f237:7fff:ffff:ffff:ffff:ffff,FI -2001:2003:f250:8000::,2001:2003:f250:ffff:ffff:ffff:ffff:ffff,FI -2001:2003:f2c3:8000::,2001:2003:f2c3:ffff:ffff:ffff:ffff:ffff,FI -2001:2003:f36f::,2001:2003:f36f:7fff:ffff:ffff:ffff:ffff,FI -2001:2003:f386::,2001:2003:f386:7fff:ffff:ffff:ffff:ffff,FI -2001:2003:f388::,2001:2003:f388:7fff:ffff:ffff:ffff:ffff,FI -2001:2003:f3be:8000::,2001:2003:f3be:ffff:ffff:ffff:ffff:ffff,FI -2001:2003:f441::,2001:2003:f441:ffff:ffff:ffff:ffff:ffff,FI -2001:2003:f447::,2001:2003:f447:7fff:ffff:ffff:ffff:ffff,FI -2001:2003:f44a:8000::,2001:2003:f44a:ffff:ffff:ffff:ffff:ffff,FI -2001:2003:f45a::,2001:2003:f45a:7fff:ffff:ffff:ffff:ffff,FI 2001:2003:f468:8000::,2001:2003:f468:ffff:ffff:ffff:ffff:ffff,FI -2001:2003:f46d:8000::,2001:2003:f46d:ffff:ffff:ffff:ffff:ffff,FI -2001:2003:f476::,2001:2003:f476:7fff:ffff:ffff:ffff:ffff,FI -2001:2003:f48c:8000::,2001:2003:f48c:ffff:ffff:ffff:ffff:ffff,FI -2001:2003:f4a6:8000::,2001:2003:f4a6:ffff:ffff:ffff:ffff:ffff,FI -2001:2003:f543::,2001:2003:f543:7fff:ffff:ffff:ffff:ffff,FI -2001:2003:f5dc::,2001:2003:f5dc:7fff:ffff:ffff:ffff:ffff,FI -2001:2003:f617::,2001:2003:f617:7fff:ffff:ffff:ffff:ffff,FI -2001:2003:f620::,2001:2003:f620:7fff:ffff:ffff:ffff:ffff,FI 2001:2003:f639::,2001:2003:f639:7fff:ffff:ffff:ffff:ffff,FI -2001:2003:f662::,2001:2003:f662:7fff:ffff:ffff:ffff:ffff,FI -2001:2003:f67c:8000::,2001:2003:f67c:ffff:ffff:ffff:ffff:ffff,FI -2001:2003:f6a9:8000::,2001:2003:f6a9:ffff:ffff:ffff:ffff:ffff,FI -2001:2003:f6ba::,2001:2003:f6ba:7fff:ffff:ffff:ffff:ffff,FI -2001:2003:f6da::,2001:2003:f6da:7fff:ffff:ffff:ffff:ffff,FI -2001:2003:f72a::,2001:2003:f72a:7fff:ffff:ffff:ffff:ffff,FI -2001:2003:f764::,2001:2003:f764:7fff:ffff:ffff:ffff:ffff,FI -2001:2003:f798:8000::,2001:2003:f798:ffff:ffff:ffff:ffff:ffff,FI -2001:2003:f7a3:8000::,2001:2003:f7a3:ffff:ffff:ffff:ffff:ffff,FI -2001:2003:f802::,2001:2003:f802:7fff:ffff:ffff:ffff:ffff,FI -2001:2003:f824::,2001:2003:f824:7fff:ffff:ffff:ffff:ffff,FI 2001:2003:f825:8000::,2001:2003:f825:ffff:ffff:ffff:ffff:ffff,FI -2001:2003:f839::,2001:2003:f839:7fff:ffff:ffff:ffff:ffff,FI -2001:2003:f83c::,2001:2003:f83c:7fff:ffff:ffff:ffff:ffff,FI -2001:2003:f882:8000::,2001:2003:f882:ffff:ffff:ffff:ffff:ffff,FI -2001:2003:f8d4::,2001:2003:f8d4:7fff:ffff:ffff:ffff:ffff,FI 2001:2003:f8f6:8000::,2001:2003:f8f6:ffff:ffff:ffff:ffff:ffff,FI -2001:2003:f8f9:8000::,2001:2003:f8f9:ffff:ffff:ffff:ffff:ffff,FI -2001:2003:f969:8000::,2001:2003:f969:ffff:ffff:ffff:ffff:ffff,FI -2001:2003:f9e7:8000::,2001:2003:f9e7:ffff:ffff:ffff:ffff:ffff,FI -2001:2003:f9f1::,2001:2003:f9f1:7fff:ffff:ffff:ffff:ffff,FI -2001:2003:fa67::,2001:2003:fa67:7fff:ffff:ffff:ffff:ffff,FI -2001:2003:fa6f:8000::,2001:2003:fa6f:ffff:ffff:ffff:ffff:ffff,FI -2001:2010:d001::,2001:2010:d001:7fff:ffff:ffff:ffff:ffff,DK -2001:2010:d002::,2001:2010:d007:7fff:ffff:ffff:ffff:ffff,DK -2001:2010:d009::,2001:2010:d00a:ffff:ffff:ffff:ffff:ffff,DK -2001:2010:d00b:8000::,2001:2010:d00c:7fff:ffff:ffff:ffff:ffff,DK -2001:2010:d00d::,2001:2010:d00d:7fff:ffff:ffff:ffff:ffff,DK +2001:2010:d002::,2001:2010:d002:7fff:ffff:ffff:ffff:ffff,DK +2001:2010:d003::,2001:2010:d004:7fff:ffff:ffff:ffff:ffff,DK +2001:2010:d007::,2001:2010:d007:7fff:ffff:ffff:ffff:ffff,DK +2001:2010:d00a:8000::,2001:2010:d00a:ffff:ffff:ffff:ffff:ffff,DK +2001:2010:d00c::,2001:2010:d00c:7fff:ffff:ffff:ffff:ffff,DK 2001:2010:d00e::,2001:2010:d00e:7fff:ffff:ffff:ffff:ffff,DK -2001:2010:d00f:8000::,2001:2010:d00f:ffff:ffff:ffff:ffff:ffff,DK -2001:2010:d012:8000::,2001:2010:d014:ffff:ffff:ffff:ffff:ffff,DK -2001:2010:d01a:8000::,2001:2010:d01c:ffff:ffff:ffff:ffff:ffff,DK -2001:2010:d01f:8000::,2001:2010:d01f:ffff:ffff:ffff:ffff:ffff,DK -2001:2010:d023:8000::,2001:2010:d023:ffff:ffff:ffff:ffff:ffff,DK -2001:2010:d029::,2001:2010:d029:7fff:ffff:ffff:ffff:ffff,DK -2001:2010:d038:8000::,2001:2010:d038:ffff:ffff:ffff:ffff:ffff,DK -2001:2010:d039:8000::,2001:2010:d03a:ffff:ffff:ffff:ffff:ffff,DK +2001:2010:d01c:8000::,2001:2010:d01c:ffff:ffff:ffff:ffff:ffff,DK 2001:2010:d04e:8000::,2001:2010:d04e:ffff:ffff:ffff:ffff:ffff,DK +2001:2011:c002::,2001:2011:c002:ffff:ffff:ffff:ffff:ffff,DK +2001:2012:3ec6:8000::,2001:2012:3ec6:ffff:ffff:ffff:ffff:ffff,DK 2001:2040:4b::,2001:2040:4b:ffff:ffff:ffff:ffff:ffff,SE +2001:2040:c006::,2001:2040:c006:ffff:ffff:ffff:ffff:ffff,SE +2001:2060:bffb::,2001:2060:bffb:ffff:ffff:ffff:ffff:ffff,FI 2001:4000::,2001:4000:ffff:ffff:ffff:ffff:ffff:ffff,FR 2001:4010::,2001:4010:ffff:ffff:ffff:ffff:ffff:ffff,GB 2001:4018::,2001:4018:ffff:ffff:ffff:ffff:ffff:ffff,NL @@ -4913,7 +4435,7 @@ 2001:4168::,2001:4168:ffff:ffff:ffff:ffff:ffff:ffff,CH 2001:4170::,2001:4170:ffff:ffff:ffff:ffff:ffff:ffff,RS 2001:4178::,2001:4180:ffff:ffff:ffff:ffff:ffff:ffff,DE -2001:4188::,2001:4188:ffff:ffff:ffff:ffff:ffff:ffff,IR +2001:4188::,2001:418f:ffff:ffff:ffff:ffff:ffff:ffff,IR 2001:4190::,2001:4190:ffff:ffff:ffff:ffff:ffff:ffff,PL 2001:4198::,2001:4198:ffff:ffff:ffff:ffff:ffff:ffff,NL 2001:41a0::,2001:41a0:ffff:ffff:ffff:ffff:ffff:ffff,IT @@ -4923,9 +4445,11 @@ 2001:41c0::,2001:41cf:ffff:ffff:ffff:ffff:ffff:ffff,GB 2001:41d0::,2001:41d0:2:4dbd:ffff:ffff:ffff:ffff,FR 2001:41d0:2:4dbe::,2001:41d0:2:4dbe:ffff:ffff:ffff:ffff,CZ -2001:41d0:2:4dbf::,2001:41d0:a:5dff:ffff:ffff:ffff:ffff,FR -2001:41d0:a:5e00::,2001:41d0:a:5fff:ffff:ffff:ffff:ffff,ES -2001:41d0:a:6000::,2001:41d0:ffff:ffff:ffff:ffff:ffff:ffff,FR +2001:41d0:2:4dbf::,2001:41d0:a:7e08:ffff:ffff:ffff:ffff,FR +2001:41d0:a:7e09::,2001:41d0:a:7e09:ffff:ffff:ffff:ffff,PT +2001:41d0:a:7e0a::,2001:41d0:129:9bff:ffff:ffff:ffff:ffff,FR +2001:41d0:129:9c00::,2001:41d0:129:9cff:ffff:ffff:ffff:ffff,NL +2001:41d0:129:9d00::,2001:41d0:ffff:ffff:ffff:ffff:ffff:ffff,FR 2001:41d8::,2001:41d8:ffff:ffff:ffff:ffff:ffff:ffff,CZ 2001:41e0::,2001:41e0:ffff:ffff:ffff:ffff:ffff:ffff,CH 2001:41e8::,2001:41e8:ffff:ffff:ffff:ffff:ffff:ffff,GB @@ -5017,7 +4541,6 @@ 2001:43f8:1f0::,2001:43f8:1f5:ffff:ffff:ffff:ffff:ffff,ZA 2001:43f8:200::,2001:43f8:200:ffff:ffff:ffff:ffff:ffff,KE 2001:43f8:210::,2001:43f8:210:ffff:ffff:ffff:ffff:ffff,LS -2001:43f8:220::,2001:43f8:220:ffff:ffff:ffff:ffff:ffff,MU 2001:43f8:230::,2001:43f8:230:ffff:ffff:ffff:ffff:ffff,ZA 2001:43f8:240::,2001:43f8:241:ffff:ffff:ffff:ffff:ffff,GH 2001:43f8:250::,2001:43f8:250:ffff:ffff:ffff:ffff:ffff,KE @@ -5105,6 +4628,7 @@ 2001:43f8:af0::,2001:43f8:af1:ffff:ffff:ffff:ffff:ffff,BJ 2001:43f8:b00::,2001:43f8:b00:ffff:ffff:ffff:ffff:ffff,KE 2001:43f8:b10::,2001:43f8:b10:ffff:ffff:ffff:ffff:ffff,NG +2001:43f8:b20::,2001:43f8:b20:ffff:ffff:ffff:ffff:ffff,CI 2001:4400::,2001:4403:ffff:ffff:ffff:ffff:ffff:ffff,NZ 2001:4408::,2001:4408:ffff:ffff:ffff:ffff:ffff:ffff,IN 2001:4410::,2001:4410:ffff:ffff:ffff:ffff:ffff:ffff,NZ @@ -5137,28 +4661,18 @@ 2001:4538::,2001:4538:ffff:ffff:ffff:ffff:ffff:ffff,PK 2001:4540::,2001:455f:ffff:ffff:ffff:ffff:ffff:ffff,TW 2001:4580::,2001:45bf:ffff:ffff:ffff:ffff:ffff:ffff,TW -2001:4600::,2001:4641:eac9:ffff:ffff:ffff:ffff:ffff,NO -2001:4641:eaca::,2001:4641:eaca:7fff:ffff:ffff:ffff:ffff,DE -2001:4641:eaca:8000::,2001:46ff:ffff:ffff:ffff:ffff:ffff:ffff,NO +2001:4600::,2001:46ff:ffff:ffff:ffff:ffff:ffff:ffff,NO 2001:4800::,2001:4808:ffff:ffff:ffff:ffff:ffff:ffff,US 2001:4810::,2001:4810:ffff:ffff:ffff:ffff:ffff:ffff,US 2001:4818::,2001:4818:ffff:ffff:ffff:ffff:ffff:ffff,CA 2001:4828::,2001:4828:ffff:ffff:ffff:ffff:ffff:ffff,US -2001:4830::,2001:4830:1100:81ff:ffff:ffff:ffff:ffff,US -2001:4830:1100:8200::,2001:4830:1100:82ff:ffff:ffff:ffff:ffff,CA -2001:4830:1100:8300::,2001:4830:1200:7fff:ffff:ffff:ffff:ffff,US +2001:4830::,2001:4830:1200:7fff:ffff:ffff:ffff:ffff,US 2001:4830:1200:8000::,2001:4830:1200:ffff:ffff:ffff:ffff:ffff,AU 2001:4830:1201::,2001:4830:1207:ffff:ffff:ffff:ffff:ffff,US 2001:4830:1208::,2001:4830:1208:7fff:ffff:ffff:ffff:ffff,AU -2001:4830:1208:8000::,2001:4830:1212:ffff:ffff:ffff:ffff:ffff,US -2001:4830:1213::,2001:4830:1213:7fff:ffff:ffff:ffff:ffff,AU -2001:4830:1213:8000::,2001:4830:1216:ffff:ffff:ffff:ffff:ffff,US -2001:4830:1217::,2001:4830:1217:7fff:ffff:ffff:ffff:ffff,AU -2001:4830:1217:8000::,2001:4830:121d:ffff:ffff:ffff:ffff:ffff,US +2001:4830:1208:8000::,2001:4830:121d:ffff:ffff:ffff:ffff:ffff,US 2001:4830:121e::,2001:4830:121e:ffff:ffff:ffff:ffff:ffff,AU -2001:4830:121f::,2001:4830:1301:ffff:ffff:ffff:ffff:ffff,US -2001:4830:1302::,2001:4830:1302:7fff:ffff:ffff:ffff:ffff,AU -2001:4830:1302:8000::,2001:4830:600f:ffff:ffff:ffff:ffff:ffff,US +2001:4830:121f::,2001:4830:600f:ffff:ffff:ffff:ffff:ffff,US 2001:4830:6010::,2001:4830:601f:ffff:ffff:ffff:ffff:ffff,GB 2001:4830:6020::,2001:4830:ffff:ffff:ffff:ffff:ffff:ffff,US 2001:4838::,2001:4838:ffff:ffff:ffff:ffff:ffff:ffff,US @@ -5169,28 +4683,16 @@ 2001:4860::,2001:4860:ffff:ffff:ffff:ffff:ffff:ffff,US 2001:4868::,2001:4868:ffff:ffff:ffff:ffff:ffff:ffff,US 2001:4870::,2001:4871:ffff:ffff:ffff:ffff:ffff:ffff,US -2001:4878::,2001:4878:8203:ffff:ffff:ffff:ffff:ffff,US -2001:4878:8204::,2001:4878:8204:7fff:ffff:ffff:ffff:ffff,DE -2001:4878:8204:8000::,2001:4878:8216:ffff:ffff:ffff:ffff:ffff,US +2001:4878::,2001:4878:8216:ffff:ffff:ffff:ffff:ffff,US 2001:4878:8217::,2001:4878:8217:7fff:ffff:ffff:ffff:ffff,ES -2001:4878:8217:8000::,2001:4878:821f:ffff:ffff:ffff:ffff:ffff,US -2001:4878:8220::,2001:4878:8220:7fff:ffff:ffff:ffff:ffff,SE -2001:4878:8220:8000::,2001:4878:8224:ffff:ffff:ffff:ffff:ffff,US +2001:4878:8217:8000::,2001:4878:8224:ffff:ffff:ffff:ffff:ffff,US 2001:4878:8225::,2001:4878:8225:7fff:ffff:ffff:ffff:ffff,PL 2001:4878:8225:8000::,2001:4878:8227:ffff:ffff:ffff:ffff:ffff,US 2001:4878:8228::,2001:4878:8228:7fff:ffff:ffff:ffff:ffff,IL -2001:4878:8228:8000::,2001:4878:8233:ffff:ffff:ffff:ffff:ffff,US -2001:4878:8234::,2001:4878:8234:7fff:ffff:ffff:ffff:ffff,GB -2001:4878:8234:8000::,2001:4878:8304:ffff:ffff:ffff:ffff:ffff,US -2001:4878:8305::,2001:4878:8305:7fff:ffff:ffff:ffff:ffff,IN -2001:4878:8305:8000::,2001:4878:8321:ffff:ffff:ffff:ffff:ffff,US -2001:4878:8322::,2001:4878:8322:7fff:ffff:ffff:ffff:ffff,JP -2001:4878:8322:8000::,2001:4878:ffff:ffff:ffff:ffff:ffff:ffff,US +2001:4878:8228:8000::,2001:4878:ffff:ffff:ffff:ffff:ffff:ffff,US 2001:4888::,2001:4888:ffff:ffff:ffff:ffff:ffff:ffff,US 2001:4890::,2001:4890:ffff:ffff:ffff:ffff:ffff:ffff,US -2001:4898::,2001:4898:de07:ffff:ffff:ffff:ffff:ffff,US -2001:4898:de08::,2001:4898:de08:7fff:ffff:ffff:ffff:ffff,BR -2001:4898:de08:8000::,2001:489a:ffff:ffff:ffff:ffff:ffff:ffff,US +2001:4898::,2001:489a:ffff:ffff:ffff:ffff:ffff:ffff,US 2001:48a0::,2001:48a0:ffff:ffff:ffff:ffff:ffff:ffff,US 2001:48a8::,2001:48a8:ffff:ffff:ffff:ffff:ffff:ffff,US 2001:48b0::,2001:48b0:ffff:ffff:ffff:ffff:ffff:ffff,US @@ -5221,13 +4723,9 @@ 2001:4960::,2001:4960:ffff:ffff:ffff:ffff:ffff:ffff,US 2001:4968::,2001:4968:ffff:ffff:ffff:ffff:ffff:ffff,US 2001:4970::,2001:4970:ffff:ffff:ffff:ffff:ffff:ffff,US -2001:4978::,2001:4978:1e2:ffff:ffff:ffff:ffff:ffff,US -2001:4978:1e3::,2001:4978:1e3:7fff:ffff:ffff:ffff:ffff,CA -2001:4978:1e3:8000::,2001:4978:2d0:ffff:ffff:ffff:ffff:ffff,US -2001:4978:2d1::,2001:4978:2d1:7fff:ffff:ffff:ffff:ffff,CA -2001:4978:2d1:8000::,2001:4978:305:ffff:ffff:ffff:ffff:ffff,US -2001:4978:306::,2001:4978:306:7fff:ffff:ffff:ffff:ffff,CA -2001:4978:306:8000::,2001:4978:ffff:ffff:ffff:ffff:ffff:ffff,US +2001:4978::,2001:4978:f:7fff:ffff:ffff:ffff:ffff,US +2001:4978:f:8000::,2001:4978:f:ffff:ffff:ffff:ffff:ffff,CA +2001:4978:10::,2001:4978:ffff:ffff:ffff:ffff:ffff:ffff,US 2001:4980::,2001:4980:ffff:ffff:ffff:ffff:ffff:ffff,US 2001:4988::,2001:4988:ffff:ffff:ffff:ffff:ffff:ffff,US 2001:4990::,2001:4990:ffff:ffff:ffff:ffff:ffff:ffff,US @@ -5278,14 +4776,14 @@ 2001:4bf0::,2001:4bf0:ffff:ffff:ffff:ffff:ffff:ffff,GB 2001:4bf8::,2001:4bf8:ffff:ffff:ffff:ffff:ffff:ffff,CH 2001:4c00::,2001:4c07:ffff:ffff:ffff:ffff:ffff:ffff,IT -2001:4c08::,2001:4c08:2000:ffff:ffff:ffff:ffff:ffff,GB -2001:4c08:2001::,2001:4c08:2001:7fff:ffff:ffff:ffff:ffff,NL -2001:4c08:2001:8000::,2001:4c08:ffff:ffff:ffff:ffff:ffff:ffff,GB +2001:4c08::,2001:4c08:ffff:ffff:ffff:ffff:ffff:ffff,GB 2001:4c10::,2001:4c10:ffff:ffff:ffff:ffff:ffff:ffff,NL 2001:4c20::,2001:4c20:ffff:ffff:ffff:ffff:ffff:ffff,GB 2001:4c28::,2001:4c28::ffff:ffff:ffff:ffff:ffff,NO 2001:4c28:1::,2001:4c28:1:7fff:ffff:ffff:ffff:ffff,RU -2001:4c28:1:8000::,2001:4c28:ffff:ffff:ffff:ffff:ffff:ffff,NO +2001:4c28:1:8000::,2001:4c28:3000:5ff:ffff:ffff:ffff:ffff,NO +2001:4c28:3000:600::,2001:4c28:3000:6ff:ffff:ffff:ffff:ffff,US +2001:4c28:3000:700::,2001:4c28:ffff:ffff:ffff:ffff:ffff:ffff,NO 2001:4c30::,2001:4c30:ffff:ffff:ffff:ffff:ffff:ffff,PL 2001:4c38::,2001:4c3f:ffff:ffff:ffff:ffff:ffff:ffff,NL 2001:4c40::,2001:4c40:ffff:ffff:ffff:ffff:ffff:ffff,BE @@ -5325,9 +4823,7 @@ 2001:4d70::,2001:4d70:ffff:ffff:ffff:ffff:ffff:ffff,BG 2001:4d78::,2001:4d78:ffff:ffff:ffff:ffff:ffff:ffff,GB 2001:4d80::,2001:4d80:ffff:ffff:ffff:ffff:ffff:ffff,RO -2001:4d88::,2001:4d88:1010:ffff:ffff:ffff:ffff:ffff,DE -2001:4d88:1011::,2001:4d88:1011:7fff:ffff:ffff:ffff:ffff,ZA -2001:4d88:1011:8000::,2001:4d88:ffff:ffff:ffff:ffff:ffff:ffff,DE +2001:4d88::,2001:4d88:ffff:ffff:ffff:ffff:ffff:ffff,DE 2001:4d90::,2001:4d90:ffff:ffff:ffff:ffff:ffff:ffff,ES 2001:4d98::,2001:4d98:ffff:ffff:ffff:ffff:ffff:ffff,CH 2001:4da0::,2001:4da7:ffff:ffff:ffff:ffff:ffff:ffff,CH @@ -5345,32 +4841,10 @@ 2001:4df0::,2001:4df0:ffff:ffff:ffff:ffff:ffff:ffff,IL 2001:8000::,2001:8fff:ffff:ffff:ffff:ffff:ffff:ffff,AU 2001:a000::,2001:a7ff:ffff:ffff:ffff:ffff:ffff:ffff,JP -2001:b000::,2001:b010:fc7f:ffff:ffff:ffff:ffff:ffff,TW -2001:b010:fc80::,2001:b010:fc80:7fff:ffff:ffff:ffff:ffff,CN -2001:b010:fc80:8000::,2001:b7ff:ffff:ffff:ffff:ffff:ffff:ffff,TW +2001:b000::,2001:b7ff:ffff:ffff:ffff:ffff:ffff:ffff,TW 2003::,2003:45:2d04:7fff:ffff:ffff:ffff:ffff,DE 2003:45:2d04:8000::,2003:45:2d04:ffff:ffff:ffff:ffff:ffff,TR -2003:45:2d05::,2003:45:2d35:7fff:ffff:ffff:ffff:ffff,DE -2003:45:2d35:8000::,2003:45:2d35:ffff:ffff:ffff:ffff:ffff,TR -2003:45:2d36::,2003:45:2d36:7fff:ffff:ffff:ffff:ffff,DE -2003:45:2d36:8000::,2003:45:2d36:ffff:ffff:ffff:ffff:ffff,TR -2003:45:2d37::,2003:4b:ae58:ffff:ffff:ffff:ffff:ffff,DE -2003:4b:ae59::,2003:4b:ae59:7fff:ffff:ffff:ffff:ffff,PL -2003:4b:ae59:8000::,2003:56:ae38:ffff:ffff:ffff:ffff:ffff,DE -2003:56:ae39::,2003:56:ae39:7fff:ffff:ffff:ffff:ffff,PL -2003:56:ae39:8000::,2003:61:ea1b:ffff:ffff:ffff:ffff:ffff,DE -2003:61:ea1c::,2003:61:ea1c:7fff:ffff:ffff:ffff:ffff,GB -2003:61:ea1c:8000::,2003:62:4e56:7fff:ffff:ffff:ffff:ffff,DE -2003:62:4e56:8000::,2003:62:4e56:ffff:ffff:ffff:ffff:ffff,CH -2003:62:4e57::,2003:77:8f34:ffff:ffff:ffff:ffff:ffff,DE -2003:77:8f35::,2003:77:8f35:7fff:ffff:ffff:ffff:ffff,NL -2003:77:8f35:8000::,2003:7a:8943:7fff:ffff:ffff:ffff:ffff,DE -2003:7a:8943:8000::,2003:7a:8943:ffff:ffff:ffff:ffff:ffff,US -2003:7a:8944::,2003:84:ab78:ffff:ffff:ffff:ffff:ffff,DE -2003:84:ab79::,2003:84:ab79:7fff:ffff:ffff:ffff:ffff,RO -2003:84:ab79:8000::,2003:87:292f:ffff:ffff:ffff:ffff:ffff,DE -2003:87:2930::,2003:87:2930:7fff:ffff:ffff:ffff:ffff,NZ -2003:87:2930:8000::,2003:1fff:ffff:ffff:ffff:ffff:ffff:ffff,DE +2003:45:2d05::,2003:1fff:ffff:ffff:ffff:ffff:ffff:ffff,DE 2067:8e00::,2067:8e00:ffff:ffff:ffff:ffff:ffff:ffff,US 2160:150::,2160:150:7fff:ffff:ffff:ffff:ffff:ffff,US 2400::,2400:fff:ffff:ffff:ffff:ffff:ffff:ffff,KR @@ -5568,13 +5042,8 @@ 2400:8780::,2400:8780:ffff:ffff:ffff:ffff:ffff:ffff,CN 2400:8800::,2400:8800:ffff:ffff:ffff:ffff:ffff:ffff,HK 2400:8880::,2400:8880:ffff:ffff:ffff:ffff:ffff:ffff,IN -2400:8900::,2400:8900::f03c:91ff:fe70:9ac8,SG -2400:8900::f03c:91ff:fe70:9ac9,2400:8900::f03c:91ff:fe70:9ac9,JP -2400:8900::f03c:91ff:fe70:9aca,2400:8900:e000:ffff:ffff:ffff:ffff:ffff,SG -2400:8900:e001::,2400:8900:e001:29ff:ffff:ffff:ffff:ffff,CN -2400:8900:e001:2a00::,2400:8900:e001:2a00::,SG -2400:8900:e001:2a00::1,2400:8900:e001:7fff:ffff:ffff:ffff:ffff,CN -2400:8900:e001:8000::,2400:8901:ffff:ffff:ffff:ffff:ffff:ffff,SG +2400:8900::,2400:8900::7fff:ffff:ffff:ffff:ffff,JP +2400:8900:0:8000::,2400:8901:ffff:ffff:ffff:ffff:ffff:ffff,SG 2400:8980::,2400:8980:ffff:ffff:ffff:ffff:ffff:ffff,CN 2400:8a00::,2400:8a00:ffff:ffff:ffff:ffff:ffff:ffff,AU 2400:8a80::,2400:8a80:ffff:ffff:ffff:ffff:ffff:ffff,PH @@ -5670,7 +5139,6 @@ 2400:bc00::,2400:bc00:ffff:ffff:ffff:ffff:ffff:ffff,AU 2400:bc80::,2400:bc80:ffff:ffff:ffff:ffff:ffff:ffff,VN 2400:bd00::,2400:bd00:ffff:ffff:ffff:ffff:ffff:ffff,NZ -2400:bd80::,2400:bd80:ffff:ffff:ffff:ffff:ffff:ffff,HK 2400:be00::,2400:be00:ffff:ffff:ffff:ffff:ffff:ffff,CN 2400:be80::,2400:be80:ffff:ffff:ffff:ffff:ffff:ffff,HK 2400:bf00::,2400:bf00:ffff:ffff:ffff:ffff:ffff:ffff,CN @@ -5695,9 +5163,71 @@ 2400:c900::,2400:c900:ffff:ffff:ffff:ffff:ffff:ffff,ID 2400:c980::,2400:c980:ffff:ffff:ffff:ffff:ffff:ffff,SG 2400:ca00::,2400:ca00:ffff:ffff:ffff:ffff:ffff:ffff,BD -2400:cb00::,2400:cb00:f00c:ffff:ffff:ffff:ffff:ffff,HK -2400:cb00:f00d::,2400:cb00:f00d:7fff:ffff:ffff:ffff:ffff,US -2400:cb00:f00d:8000::,2400:cb00:ffff:ffff:ffff:ffff:ffff:ffff,HK +2400:cb00::,2400:cb00:18:ffff:ffff:ffff:ffff:ffff,US +2400:cb00:19::,2400:cb00:19:ffff:ffff:ffff:ffff:ffff,FR +2400:cb00:1a::,2400:cb00:1f:ffff:ffff:ffff:ffff:ffff,US +2400:cb00:20::,2400:cb00:20:ffff:ffff:ffff:ffff:ffff,NL +2400:cb00:21::,2400:cb00:21:ffff:ffff:ffff:ffff:ffff,GB +2400:cb00:22::,2400:cb00:22:ffff:ffff:ffff:ffff:ffff,JP +2400:cb00:23::,2400:cb00:23:ffff:ffff:ffff:ffff:ffff,HK +2400:cb00:24::,2400:cb00:25:ffff:ffff:ffff:ffff:ffff,US +2400:cb00:26::,2400:cb00:26:ffff:ffff:ffff:ffff:ffff,AU +2400:cb00:27::,2400:cb00:28:ffff:ffff:ffff:ffff:ffff,US +2400:cb00:29::,2400:cb00:29:ffff:ffff:ffff:ffff:ffff,CA +2400:cb00:2a::,2400:cb00:2f:ffff:ffff:ffff:ffff:ffff,US +2400:cb00:30::,2400:cb00:30:ffff:ffff:ffff:ffff:ffff,AT +2400:cb00:31::,2400:cb00:31:ffff:ffff:ffff:ffff:ffff,CZ +2400:cb00:32::,2400:cb00:32:ffff:ffff:ffff:ffff:ffff,SE +2400:cb00:33::,2400:cb00:33:ffff:ffff:ffff:ffff:ffff,PL +2400:cb00:34::,2400:cb00:34:ffff:ffff:ffff:ffff:ffff,KR +2400:cb00:35::,2400:cb00:35:ffff:ffff:ffff:ffff:ffff,SG +2400:cb00:36::,2400:cb00:36:ffff:ffff:ffff:ffff:ffff,US +2400:cb00:37::,2400:cb00:37:ffff:ffff:ffff:ffff:ffff,DE +2400:cb00:38::,2400:cb00:38:ffff:ffff:ffff:ffff:ffff,CL +2400:cb00:39::,2400:cb00:39:ffff:ffff:ffff:ffff:ffff,IT +2400:cb00:3a::,2400:cb00:3f:ffff:ffff:ffff:ffff:ffff,US +2400:cb00:40::,2400:cb00:40:ffff:ffff:ffff:ffff:ffff,ES +2400:cb00:41::,2400:cb00:41:ffff:ffff:ffff:ffff:ffff,CO +2400:cb00:42::,2400:cb00:42:ffff:ffff:ffff:ffff:ffff,BR +2400:cb00:43::,2400:cb00:43:ffff:ffff:ffff:ffff:ffff,PE +2400:cb00:44::,2400:cb00:44:ffff:ffff:ffff:ffff:ffff,AR +2400:cb00:45::,2400:cb00:45:ffff:ffff:ffff:ffff:ffff,ZA +2400:cb00:46::,2400:cb00:46:ffff:ffff:ffff:ffff:ffff,NZ +2400:cb00:47::,2400:cb00:47:ffff:ffff:ffff:ffff:ffff,AU +2400:cb00:48::,2400:cb00:48:ffff:ffff:ffff:ffff:ffff,DE +2400:cb00:49::,2400:cb00:49:ffff:ffff:ffff:ffff:ffff,FR +2400:cb00:4a::,2400:cb00:4f:ffff:ffff:ffff:ffff:ffff,US +2400:cb00:50::,2400:cb00:50:ffff:ffff:ffff:ffff:ffff,RO +2400:cb00:51::,2400:cb00:51:ffff:ffff:ffff:ffff:ffff,JP +2400:cb00:52::,2400:cb00:52:ffff:ffff:ffff:ffff:ffff,IE +2400:cb00:53::,2400:cb00:53:ffff:ffff:ffff:ffff:ffff,KW +2400:cb00:54::,2400:cb00:54:ffff:ffff:ffff:ffff:ffff,QA +2400:cb00:55::,2400:cb00:55:ffff:ffff:ffff:ffff:ffff,OM +2400:cb00:56::,2400:cb00:56:ffff:ffff:ffff:ffff:ffff,MY +2400:cb00:57::,2400:cb00:59:ffff:ffff:ffff:ffff:ffff,IN +2400:cb00:5a::,2400:cb00:5f:ffff:ffff:ffff:ffff:ffff,US +2400:cb00:60::,2400:cb00:60:ffff:ffff:ffff:ffff:ffff,AE +2400:cb00:61::,2400:cb00:61:ffff:ffff:ffff:ffff:ffff,KE +2400:cb00:62::,2400:cb00:62:ffff:ffff:ffff:ffff:ffff,EG +2400:cb00:63::,2400:cb00:63:ffff:ffff:ffff:ffff:ffff,GB +2400:cb00:64::,2400:cb00:64:ffff:ffff:ffff:ffff:ffff,CH +2400:cb00:65::,2400:cb00:65:ffff:ffff:ffff:ffff:ffff,DK +2400:cb00:66::,2400:cb00:66:ffff:ffff:ffff:ffff:ffff,US +2400:cb00:67::,2400:cb00:67:ffff:ffff:ffff:ffff:ffff,DE +2400:cb00:68::,2400:cb00:68:ffff:ffff:ffff:ffff:ffff,PH +2400:cb00:69::,2400:cb00:69:ffff:ffff:ffff:ffff:ffff,CA +2400:cb00:6a::,2400:cb00:6f:ffff:ffff:ffff:ffff:ffff,US +2400:cb00:70::,2400:cb00:70:ffff:ffff:ffff:ffff:ffff,CA +2400:cb00:71::,2400:cb00:71:ffff:ffff:ffff:ffff:ffff,DE +2400:cb00:72::,2400:cb00:72:ffff:ffff:ffff:ffff:ffff,US +2400:cb00:73::,2400:cb00:73:ffff:ffff:ffff:ffff:ffff,PL +2400:cb00:74::,2400:cb00:74:ffff:ffff:ffff:ffff:ffff,BG +2400:cb00:75::,2400:cb00:75:ffff:ffff:ffff:ffff:ffff,DE +2400:cb00:76::,2400:cb00:77:ffff:ffff:ffff:ffff:ffff,US +2400:cb00:78::,2400:cb00:78:ffff:ffff:ffff:ffff:ffff,BE +2400:cb00:79::,2400:cb00:82:ffff:ffff:ffff:ffff:ffff,US +2400:cb00:83::,2400:cb00:83:ffff:ffff:ffff:ffff:ffff,NO +2400:cb00:84::,2400:cb00:ffff:ffff:ffff:ffff:ffff:ffff,US 2400:cb80::,2400:cb80:ffff:ffff:ffff:ffff:ffff:ffff,CN 2400:cc00::,2400:cc00:ffff:ffff:ffff:ffff:ffff:ffff,AU 2400:cc80::,2400:cc80:ffff:ffff:ffff:ffff:ffff:ffff,CN @@ -5839,9 +5369,7 @@ 2401:1680::,2401:1680:ffff:ffff:ffff:ffff:ffff:ffff,MY 2401:1700::,2401:1700:ffff:ffff:ffff:ffff:ffff:ffff,ID 2401:1780::,2401:1780:ffff:ffff:ffff:ffff:ffff:ffff,TW -2401:1800::,2401:1801:7800:ffff:ffff:ffff:ffff:ffff,HK -2401:1801:7801::,2401:1801:7801:7fff:ffff:ffff:ffff:ffff,AU -2401:1801:7801:8000::,2401:1801:ffff:ffff:ffff:ffff:ffff:ffff,HK +2401:1800::,2401:1801:ffff:ffff:ffff:ffff:ffff:ffff,HK 2401:1880::,2401:1880:ffff:ffff:ffff:ffff:ffff:ffff,NZ 2401:1900::,2401:1900:ffff:ffff:ffff:ffff:ffff:ffff,BD 2401:1980::,2401:1980:ffff:ffff:ffff:ffff:ffff:ffff,BD @@ -6010,8 +5538,7 @@ 2401:7e80::,2401:7e80:ffff:ffff:ffff:ffff:ffff:ffff,AU 2401:7f00::,2401:7f00:ffff:ffff:ffff:ffff:ffff:ffff,JP 2401:7f80::,2401:7f80:ffff:ffff:ffff:ffff:ffff:ffff,CN -2401:8000::,2401:8000::7fff:ffff:ffff:ffff:ffff,CN -2401:8000:0:8000::,2401:803f:ffff:ffff:ffff:ffff:ffff:ffff,TW +2401:8000::,2401:803f:ffff:ffff:ffff:ffff:ffff:ffff,TW 2401:8080::,2401:8080:ffff:ffff:ffff:ffff:ffff:ffff,AF 2401:8100::,2401:8100:ffff:ffff:ffff:ffff:ffff:ffff,AU 2401:8180::,2401:8180:ffff:ffff:ffff:ffff:ffff:ffff,AU @@ -6022,7 +5549,6 @@ 2401:8400::,2401:8400:ffff:ffff:ffff:ffff:ffff:ffff,SG 2401:8480::,2401:8480:ffff:ffff:ffff:ffff:ffff:ffff,AU 2401:8500::,2401:8500:ffff:ffff:ffff:ffff:ffff:ffff,HK -2401:8580::,2401:8580:ffff:ffff:ffff:ffff:ffff:ffff,BD 2401:8600::,2401:8600:ffff:ffff:ffff:ffff:ffff:ffff,CN 2401:8680::,2401:8680:ffff:ffff:ffff:ffff:ffff:ffff,CN 2401:8700::,2401:8700:ffff:ffff:ffff:ffff:ffff:ffff,JP @@ -6120,7 +5646,6 @@ 2401:b800::,2401:b800:ffff:ffff:ffff:ffff:ffff:ffff,VN 2401:b880::,2401:b880:ffff:ffff:ffff:ffff:ffff:ffff,AU 2401:b900::,2401:b900:ffff:ffff:ffff:ffff:ffff:ffff,PH -2401:b980::,2401:b980:ffff:ffff:ffff:ffff:ffff:ffff,TH 2401:ba00::,2401:ba00:ffff:ffff:ffff:ffff:ffff:ffff,CN 2401:ba80::,2401:ba80:ffff:ffff:ffff:ffff:ffff:ffff,PK 2401:bb00::,2401:bb00:ffff:ffff:ffff:ffff:ffff:ffff,IN @@ -6128,7 +5653,6 @@ 2401:bc00::,2401:bc00:ffff:ffff:ffff:ffff:ffff:ffff,PH 2401:bc80::,2401:bc80:ffff:ffff:ffff:ffff:ffff:ffff,MM 2401:bd00::,2401:bd00:ffff:ffff:ffff:ffff:ffff:ffff,JP -2401:bd80::,2401:bd80:ffff:ffff:ffff:ffff:ffff:ffff,TW 2401:be00::,2401:be00:ffff:ffff:ffff:ffff:ffff:ffff,CN 2401:be80::,2401:be80:ffff:ffff:ffff:ffff:ffff:ffff,ID 2401:bf00::,2401:bf00:ffff:ffff:ffff:ffff:ffff:ffff,JP @@ -6151,8 +5675,8 @@ 2401:c800::,2401:c800:ffff:ffff:ffff:ffff:ffff:ffff,JP 2401:c880::,2401:c880:ffff:ffff:ffff:ffff:ffff:ffff,IN 2401:c900::,2401:c900:1000:ffff:ffff:ffff:ffff:ffff,SG -2401:c900:1001::,2401:c900:1001:ff:ffff:ffff:ffff:ffff,JP -2401:c900:1001:100::,2401:c900:11ff:ffff:ffff:ffff:ffff:ffff,SG +2401:c900:1001::,2401:c900:1001:7fff:ffff:ffff:ffff:ffff,JP +2401:c900:1001:8000::,2401:c900:11ff:ffff:ffff:ffff:ffff:ffff,SG 2401:c900:1200::,2401:c900:1201:175:ffff:ffff:ffff:ffff,US 2401:c900:1201:176::,2401:c900:1201:176:ffff:ffff:ffff:ffff,HK 2401:c900:1201:177::,2401:c900:1201:1cb:ffff:ffff:ffff:ffff,US @@ -6160,9 +5684,7 @@ 2401:c900:1201:1cd::,2401:c900:12ff:ffff:ffff:ffff:ffff:ffff,US 2401:c900:1300::,2401:c900:1300:ffff:ffff:ffff:ffff:ffff,SG 2401:c900:1301::,2401:c900:1301:7fff:ffff:ffff:ffff:ffff,AU -2401:c900:1301:8000::,2401:c900:1400:ffff:ffff:ffff:ffff:ffff,SG -2401:c900:1401::,2401:c900:1401:7fff:ffff:ffff:ffff:ffff,AU -2401:c900:1401:8000::,2401:c901:ffff:ffff:ffff:ffff:ffff:ffff,SG +2401:c900:1301:8000::,2401:c901:ffff:ffff:ffff:ffff:ffff:ffff,SG 2401:c980::,2401:c980:ffff:ffff:ffff:ffff:ffff:ffff,NZ 2401:ca00::,2401:ca00:ffff:ffff:ffff:ffff:ffff:ffff,CN 2401:ca80::,2401:ca80:ffff:ffff:ffff:ffff:ffff:ffff,CN @@ -6261,37 +5783,34 @@ 2401:f880::,2401:f880:ffff:ffff:ffff:ffff:ffff:ffff,MY 2401:f900::,2401:f900:ffff:ffff:ffff:ffff:ffff:ffff,SG 2401:f980::,2401:f980:ffff:ffff:ffff:ffff:ffff:ffff,ID -2401:fa00::,2401:fa00::ffff:ffff:ffff:ffff:ffff,AU -2401:fa00:1::,2401:fa00:1:ffff:ffff:ffff:ffff:ffff,TW -2401:fa00:2::,2401:fa00:2:ffff:ffff:ffff:ffff:ffff,IN -2401:fa00:3::,2401:fa00:3:ffff:ffff:ffff:ffff:ffff,SG +2401:fa00::,2401:fa00::7fff:ffff:ffff:ffff:ffff,AU +2401:fa00:0:8000::,2401:fa00::ffff:ffff:ffff:ffff:ffff,IN +2401:fa00:1::,2401:fa00:1:7fff:ffff:ffff:ffff:ffff,TW +2401:fa00:1:8000::,2401:fa00:3:ffff:ffff:ffff:ffff:ffff,IN 2401:fa00:4::,2401:fa00:4:ffff:ffff:ffff:ffff:ffff,JP 2401:fa00:5::,2401:fa00:6:ffff:ffff:ffff:ffff:ffff,IN -2401:fa00:7::,2401:fa00:7:ffff:ffff:ffff:ffff:ffff,US -2401:fa00:8::,2401:fa00:8:7fff:ffff:ffff:ffff:ffff,IN -2401:fa00:8:8000::,2401:fa00:8:ffff:ffff:ffff:ffff:ffff,MY -2401:fa00:9::,2401:fa00:9:ffff:ffff:ffff:ffff:ffff,AU -2401:fa00:a::,2401:fa00:c:ffff:ffff:ffff:ffff:ffff,IN +2401:fa00:7::,2401:fa00:7:7fff:ffff:ffff:ffff:ffff,US +2401:fa00:7:8000::,2401:fa00:8:ffff:ffff:ffff:ffff:ffff,IN +2401:fa00:9::,2401:fa00:9:7fff:ffff:ffff:ffff:ffff,AU +2401:fa00:9:8000::,2401:fa00:c:ffff:ffff:ffff:ffff:ffff,IN 2401:fa00:d::,2401:fa00:d:7fff:ffff:ffff:ffff:ffff,KR -2401:fa00:d:8000::,2401:fa00:f:7fff:ffff:ffff:ffff:ffff,IN -2401:fa00:f:8000::,2401:fa00:f:ffff:ffff:ffff:ffff:ffff,SG -2401:fa00:10::,2401:fa00:10:ffff:ffff:ffff:ffff:ffff,IN -2401:fa00:11::,2401:fa00:11:ffff:ffff:ffff:ffff:ffff,AU +2401:fa00:d:8000::,2401:fa00:e:ffff:ffff:ffff:ffff:ffff,IN +2401:fa00:f::,2401:fa00:f:7fff:ffff:ffff:ffff:ffff,SG +2401:fa00:f:8000::,2401:fa00:10:ffff:ffff:ffff:ffff:ffff,IN +2401:fa00:11::,2401:fa00:11:7fff:ffff:ffff:ffff:ffff,AU +2401:fa00:11:8000::,2401:fa00:11:ffff:ffff:ffff:ffff:ffff,IN 2401:fa00:12::,2401:fa00:12:ffff:ffff:ffff:ffff:ffff,NZ -2401:fa00:13::,2401:fa00:13:ffff:ffff:ffff:ffff:ffff,HK -2401:fa00:14::,2401:fa00:15:7fff:ffff:ffff:ffff:ffff,IN -2401:fa00:15:8000::,2401:fa00:15:ffff:ffff:ffff:ffff:ffff,US -2401:fa00:16::,2401:fa00:17:ffff:ffff:ffff:ffff:ffff,IN +2401:fa00:13::,2401:fa00:13:7fff:ffff:ffff:ffff:ffff,HK +2401:fa00:13:8000::,2401:fa00:17:ffff:ffff:ffff:ffff:ffff,IN 2401:fa00:18::,2401:fa00:18:7fff:ffff:ffff:ffff:ffff,PH 2401:fa00:18:8000::,2401:fa00:18:ffff:ffff:ffff:ffff:ffff,US -2401:fa00:19::,2401:fa00:1e:ffff:ffff:ffff:ffff:ffff,IN -2401:fa00:1f::,2401:fa00:1f:7fff:ffff:ffff:ffff:ffff,US -2401:fa00:1f:8000::,2401:fa00:23:ffff:ffff:ffff:ffff:ffff,IN +2401:fa00:19::,2401:fa00:23:ffff:ffff:ffff:ffff:ffff,IN 2401:fa00:24::,2401:fa00:24:7fff:ffff:ffff:ffff:ffff,US -2401:fa00:24:8000::,2401:fa00:24:ffff:ffff:ffff:ffff:ffff,MY -2401:fa00:25::,2401:fa00:25:ffff:ffff:ffff:ffff:ffff,IN -2401:fa00:26::,2401:fa00:26:ffff:ffff:ffff:ffff:ffff,US -2401:fa00:27::,2401:fa00:3f:ffff:ffff:ffff:ffff:ffff,IN +2401:fa00:24:8000::,2401:fa00:25:ffff:ffff:ffff:ffff:ffff,IN +2401:fa00:26::,2401:fa00:26:7fff:ffff:ffff:ffff:ffff,US +2401:fa00:26:8000::,2401:fa00:28:ffff:ffff:ffff:ffff:ffff,IN +2401:fa00:29::,2401:fa00:29:7fff:ffff:ffff:ffff:ffff,AU +2401:fa00:29:8000::,2401:fa00:3f:ffff:ffff:ffff:ffff:ffff,IN 2401:fa00:40::,2401:fa00:40:7fff:ffff:ffff:ffff:ffff,CN 2401:fa00:40:8000::,2401:fa00:40:ffff:ffff:ffff:ffff:ffff,IN 2401:fa00:41::,2401:fa00:41:7fff:ffff:ffff:ffff:ffff,CN @@ -6319,7 +5838,6 @@ 2402:700::,2402:700:ffff:ffff:ffff:ffff:ffff:ffff,JP 2402:780::,2402:780:ffff:ffff:ffff:ffff:ffff:ffff,ID 2402:800::,2402:800:ffff:ffff:ffff:ffff:ffff:ffff,VN -2402:880::,2402:880:ffff:ffff:ffff:ffff:ffff:ffff,CN 2402:900::,2402:900:ffff:ffff:ffff:ffff:ffff:ffff,IN 2402:980::,2402:980:ffff:ffff:ffff:ffff:ffff:ffff,SG 2402:a00::,2402:a00:ffff:ffff:ffff:ffff:ffff:ffff,IN @@ -6491,15 +6009,9 @@ 2402:5e80::,2402:5e80:ffff:ffff:ffff:ffff:ffff:ffff,BD 2402:5f00::,2402:5f00:ffff:ffff:ffff:ffff:ffff:ffff,ID 2402:5f80::,2402:5f80:ffff:ffff:ffff:ffff:ffff:ffff,SG -2402:6000::,2402:6000:ff:ffff:ffff:ffff:ffff:ffff,AU -2402:6000:100::,2402:6000:100:7fff:ffff:ffff:ffff:ffff,NZ -2402:6000:100:8000::,2402:6000:100:ffff:ffff:ffff:ffff:ffff,AU +2402:6000::,2402:6000:100:ffff:ffff:ffff:ffff:ffff,AU 2402:6000:101::,2402:6000:101:7fff:ffff:ffff:ffff:ffff,NZ -2402:6000:101:8000::,2402:6000:1ff:7fff:ffff:ffff:ffff:ffff,AU -2402:6000:1ff:8000::,2402:6000:1ff:ffff:ffff:ffff:ffff:ffff,NZ -2402:6000:200::,2402:6000:202:ffff:ffff:ffff:ffff:ffff,AU -2402:6000:203::,2402:6000:203:7fff:ffff:ffff:ffff:ffff,NZ -2402:6000:203:8000::,2402:6000:ffff:ffff:ffff:ffff:ffff:ffff,AU +2402:6000:101:8000::,2402:6000:ffff:ffff:ffff:ffff:ffff:ffff,AU 2402:6080::,2402:6080:ffff:ffff:ffff:ffff:ffff:ffff,HK 2402:6100::,2402:6100:ffff:ffff:ffff:ffff:ffff:ffff,KR 2402:6180::,2402:6180:ffff:ffff:ffff:ffff:ffff:ffff,HK @@ -6519,9 +6031,7 @@ 2402:6980::,2402:6980:ffff:ffff:ffff:ffff:ffff:ffff,ID 2402:6a00::,2402:6a00:ffff:ffff:ffff:ffff:ffff:ffff,CN 2402:6a80::,2402:6a80:ffff:ffff:ffff:ffff:ffff:ffff,HK -2402:6b00::,2402:6b00:4c64:ffff:ffff:ffff:ffff:ffff,JP -2402:6b00:4c65::,2402:6b00:4c65:7fff:ffff:ffff:ffff:ffff,US -2402:6b00:4c65:8000::,2402:6b00:ffff:ffff:ffff:ffff:ffff:ffff,JP +2402:6b00::,2402:6b00:ffff:ffff:ffff:ffff:ffff:ffff,JP 2402:6b80::,2402:6b80:ffff:ffff:ffff:ffff:ffff:ffff,AU 2402:6c00::,2402:6c00:ffff:ffff:ffff:ffff:ffff:ffff,MY 2402:6c80::,2402:6c80:ffff:ffff:ffff:ffff:ffff:ffff,JP @@ -6623,7 +6133,8 @@ 2402:9d00::,2402:9d00:ffff:ffff:ffff:ffff:ffff:ffff,KH 2402:9d80::,2402:9d80:ffff:ffff:ffff:ffff:ffff:ffff,VN 2402:9e00::,2402:9e00:ffff:ffff:ffff:ffff:ffff:ffff,NZ -2402:9e80::,2402:9e80:ffff:ffff:ffff:ffff:ffff:ffff,HK +2402:9e80::,2402:9e80::7fff:ffff:ffff:ffff:ffff,CN +2402:9e80:0:8000::,2402:9e80:ffff:ffff:ffff:ffff:ffff:ffff,HK 2402:9f00::,2402:9f00:ffff:ffff:ffff:ffff:ffff:ffff,AU 2402:9f80::,2402:9f80:ffff:ffff:ffff:ffff:ffff:ffff,CN 2402:a000::,2402:a000:ffff:ffff:ffff:ffff:ffff:ffff,ID @@ -6683,7 +6194,7 @@ 2402:bc00::,2402:bc07:ffff:ffff:ffff:ffff:ffff:ffff,JP 2402:bc80::,2402:bc80:ffff:ffff:ffff:ffff:ffff:ffff,AU 2402:bd00::,2402:bd00:ffff:ffff:ffff:ffff:ffff:ffff,AU -2402:bd80::,2402:bd80:ffff:ffff:ffff:ffff:ffff:ffff,IN +2402:bd80::,2402:bd81:ffff:ffff:ffff:ffff:ffff:ffff,IN 2402:be00::,2402:be00:ffff:ffff:ffff:ffff:ffff:ffff,KR 2402:be80::,2402:be80:ffff:ffff:ffff:ffff:ffff:ffff,ID 2402:bf00::,2402:bf00:ffff:ffff:ffff:ffff:ffff:ffff,MY @@ -7215,11 +6726,7 @@ 2403:ca80::,2403:ca80:ffff:ffff:ffff:ffff:ffff:ffff,CN 2403:cb00::,2403:cb00:ffff:ffff:ffff:ffff:ffff:ffff,SG 2403:cb80::,2403:cb80:ffff:ffff:ffff:ffff:ffff:ffff,ID -2403:cc00::,2403:cc00:3fff:ffff:ffff:ffff:ffff:ffff,SG -2403:cc00:4000::,2403:cc00:4000:7fff:ffff:ffff:ffff:ffff,AU -2403:cc00:4000:8000::,2403:cc00:9fff:ffff:ffff:ffff:ffff:ffff,SG -2403:cc00:a000::,2403:cc00:a000:7fff:ffff:ffff:ffff:ffff,ES -2403:cc00:a000:8000::,2403:cc00:ffff:ffff:ffff:ffff:ffff:ffff,SG +2403:cc00::,2403:cc00:ffff:ffff:ffff:ffff:ffff:ffff,SG 2403:cc80::,2403:cc80:ffff:ffff:ffff:ffff:ffff:ffff,BD 2403:cd00::,2403:cd00:ffff:ffff:ffff:ffff:ffff:ffff,PH 2403:cd80::,2403:cd80:ffff:ffff:ffff:ffff:ffff:ffff,PH @@ -7387,81 +6894,163 @@ 2404:1500::,2404:1500:ffff:ffff:ffff:ffff:ffff:ffff,IN 2404:1580::,2404:1580:ffff:ffff:ffff:ffff:ffff:ffff,IN 2404:1600::,2404:1601:ffff:ffff:ffff:ffff:ffff:ffff,AU +2404:1680::,2404:1680:ffff:ffff:ffff:ffff:ffff:ffff,TH 2404:1700::,2404:1700:ffff:ffff:ffff:ffff:ffff:ffff,JP +2404:1780::,2404:1780:ffff:ffff:ffff:ffff:ffff:ffff,MM 2404:1800::,2404:1800:ffff:ffff:ffff:ffff:ffff:ffff,NZ +2404:1880::,2404:1880:ffff:ffff:ffff:ffff:ffff:ffff,CN 2404:1900::,2404:1900:ffff:ffff:ffff:ffff:ffff:ffff,JP +2404:1980::,2404:1980:ffff:ffff:ffff:ffff:ffff:ffff,JP 2404:1a00::,2404:1a00:ffff:ffff:ffff:ffff:ffff:ffff,TH +2404:1a80::,2404:1a80:ffff:ffff:ffff:ffff:ffff:ffff,NZ 2404:1b00::,2404:1b00:ffff:ffff:ffff:ffff:ffff:ffff,JP +2404:1b80::,2404:1b80:ffff:ffff:ffff:ffff:ffff:ffff,IN 2404:1c00::,2404:1c00:ffff:ffff:ffff:ffff:ffff:ffff,NZ +2404:1c80::,2404:1c80:ffff:ffff:ffff:ffff:ffff:ffff,CN 2404:1d00::,2404:1d00:ffff:ffff:ffff:ffff:ffff:ffff,AU +2404:1d80::,2404:1d80:ffff:ffff:ffff:ffff:ffff:ffff,CN 2404:1e00::,2404:1e00:ffff:ffff:ffff:ffff:ffff:ffff,NZ +2404:1e80::,2404:1e80:ffff:ffff:ffff:ffff:ffff:ffff,CN 2404:1f00::,2404:1f00:ffff:ffff:ffff:ffff:ffff:ffff,IN +2404:1f80::,2404:1f80:ffff:ffff:ffff:ffff:ffff:ffff,AU 2404:2000::,2404:2000:ffff:ffff:ffff:ffff:ffff:ffff,NZ +2404:2080::,2404:2080:ffff:ffff:ffff:ffff:ffff:ffff,AU 2404:2100::,2404:2100:ffff:ffff:ffff:ffff:ffff:ffff,HK +2404:2180::,2404:2180:ffff:ffff:ffff:ffff:ffff:ffff,SG 2404:2200::,2404:2200:ffff:ffff:ffff:ffff:ffff:ffff,NC +2404:2280::,2404:2280:ffff:ffff:ffff:ffff:ffff:ffff,SG 2404:2300::,2404:2300:ffff:ffff:ffff:ffff:ffff:ffff,KR +2404:2380::,2404:2380:ffff:ffff:ffff:ffff:ffff:ffff,PH 2404:2400::,2404:2400:ffff:ffff:ffff:ffff:ffff:ffff,AU +2404:2480::,2404:2480:ffff:ffff:ffff:ffff:ffff:ffff,HK +2404:2580::,2404:2580:ffff:ffff:ffff:ffff:ffff:ffff,TH 2404:2600::,2404:2600:ffff:ffff:ffff:ffff:ffff:ffff,TH +2404:2680::,2404:2680:ffff:ffff:ffff:ffff:ffff:ffff,JP 2404:2700::,2404:2700:ffff:ffff:ffff:ffff:ffff:ffff,MN +2404:2780::,2404:2780:ffff:ffff:ffff:ffff:ffff:ffff,AU 2404:2800::,2404:2800:ffff:ffff:ffff:ffff:ffff:ffff,AU +2404:2880::,2404:2880:ffff:ffff:ffff:ffff:ffff:ffff,KR 2404:2900::,2404:2900:ffff:ffff:ffff:ffff:ffff:ffff,AU +2404:2980::,2404:2980:ffff:ffff:ffff:ffff:ffff:ffff,BD 2404:2a00::,2404:2a00:ffff:ffff:ffff:ffff:ffff:ffff,NC +2404:2a80::,2404:2a80:ffff:ffff:ffff:ffff:ffff:ffff,HK 2404:2b00::,2404:2b00:ffff:ffff:ffff:ffff:ffff:ffff,AU +2404:2b80::,2404:2b80:ffff:ffff:ffff:ffff:ffff:ffff,BD 2404:2c00::,2404:2c00:ffff:ffff:ffff:ffff:ffff:ffff,NP +2404:2c80::,2404:2c80:ffff:ffff:ffff:ffff:ffff:ffff,ID 2404:2d00::,2404:2d00:ffff:ffff:ffff:ffff:ffff:ffff,JP +2404:2d80::,2404:2d80:ffff:ffff:ffff:ffff:ffff:ffff,BD 2404:2e00::,2404:2e00:ffff:ffff:ffff:ffff:ffff:ffff,LA +2404:2e80::,2404:2e80:ffff:ffff:ffff:ffff:ffff:ffff,NP 2404:2f00::,2404:2f00:ffff:ffff:ffff:ffff:ffff:ffff,NZ +2404:2f80::,2404:2f80:ffff:ffff:ffff:ffff:ffff:ffff,ID +2404:3080::,2404:3080:ffff:ffff:ffff:ffff:ffff:ffff,BD 2404:3100::,2404:3100:ffff:ffff:ffff:ffff:ffff:ffff,PK +2404:3180::,2404:3180:ffff:ffff:ffff:ffff:ffff:ffff,BD 2404:3200::,2404:3200:ffff:ffff:ffff:ffff:ffff:ffff,JP +2404:3280::,2404:3280:ffff:ffff:ffff:ffff:ffff:ffff,TH 2404:3300::,2404:3300:ffff:ffff:ffff:ffff:ffff:ffff,CN +2404:3380::,2404:3380:ffff:ffff:ffff:ffff:ffff:ffff,PH +2404:3480::,2404:3480:ffff:ffff:ffff:ffff:ffff:ffff,CN 2404:3500::,2404:3500:ffff:ffff:ffff:ffff:ffff:ffff,HK +2404:3580::,2404:3580:ffff:ffff:ffff:ffff:ffff:ffff,ID 2404:3600::,2404:3601:ffff:ffff:ffff:ffff:ffff:ffff,NZ +2404:3680::,2404:3680:ffff:ffff:ffff:ffff:ffff:ffff,ID 2404:3700::,2404:3700:ffff:ffff:ffff:ffff:ffff:ffff,CN +2404:3780::,2404:3780:ffff:ffff:ffff:ffff:ffff:ffff,NP 2404:3800::,2404:3800:ffff:ffff:ffff:ffff:ffff:ffff,NZ +2404:3880::,2404:3880:ffff:ffff:ffff:ffff:ffff:ffff,HK 2404:3900::,2404:3900:ffff:ffff:ffff:ffff:ffff:ffff,ID +2404:3980::,2404:3980:ffff:ffff:ffff:ffff:ffff:ffff,NZ 2404:3a00::,2404:3a00:ffff:ffff:ffff:ffff:ffff:ffff,VN +2404:3a80::,2404:3a80:ffff:ffff:ffff:ffff:ffff:ffff,TH 2404:3b00::,2404:3b00:ffff:ffff:ffff:ffff:ffff:ffff,CN +2404:3b80::,2404:3b80:ffff:ffff:ffff:ffff:ffff:ffff,HK 2404:3c00::,2404:3c00:ffff:ffff:ffff:ffff:ffff:ffff,PH +2404:3c80::,2404:3c80:ffff:ffff:ffff:ffff:ffff:ffff,PK 2404:3d00::,2404:3d00:ffff:ffff:ffff:ffff:ffff:ffff,AU +2404:3d80::,2404:3d80:ffff:ffff:ffff:ffff:ffff:ffff,NZ 2404:3e00::,2404:3e00:ffff:ffff:ffff:ffff:ffff:ffff,ID +2404:3e80::,2404:3e80:ffff:ffff:ffff:ffff:ffff:ffff,ID 2404:3f00::,2404:3f00:ffff:ffff:ffff:ffff:ffff:ffff,IN +2404:3f80::,2404:3f80:ffff:ffff:ffff:ffff:ffff:ffff,BD +2404:4080::,2404:4080:ffff:ffff:ffff:ffff:ffff:ffff,CN 2404:4100::,2404:4100:ffff:ffff:ffff:ffff:ffff:ffff,IN +2404:4180::,2404:4180:ffff:ffff:ffff:ffff:ffff:ffff,NZ 2404:4200::,2404:4200:ffff:ffff:ffff:ffff:ffff:ffff,ID +2404:4280::,2404:4280:ffff:ffff:ffff:ffff:ffff:ffff,HK 2404:4300::,2404:4300:ffff:ffff:ffff:ffff:ffff:ffff,MY +2404:4380::,2404:4380:ffff:ffff:ffff:ffff:ffff:ffff,AU 2404:4400::,2404:440f:ffff:ffff:ffff:ffff:ffff:ffff,NZ +2404:4480::,2404:4480:ffff:ffff:ffff:ffff:ffff:ffff,IN +2404:4580::,2404:4580:ffff:ffff:ffff:ffff:ffff:ffff,BD 2404:4600::,2404:4600:ffff:ffff:ffff:ffff:ffff:ffff,KR +2404:4680::,2404:4680:ffff:ffff:ffff:ffff:ffff:ffff,BD 2404:4700::,2404:4700:ffff:ffff:ffff:ffff:ffff:ffff,IN +2404:4780::,2404:4780:ffff:ffff:ffff:ffff:ffff:ffff,ID 2404:4800::,2404:4800:ffff:ffff:ffff:ffff:ffff:ffff,SG +2404:4880::,2404:4880:ffff:ffff:ffff:ffff:ffff:ffff,NZ 2404:4900::,2404:4900:ffff:ffff:ffff:ffff:ffff:ffff,NZ +2404:4980::,2404:4980:ffff:ffff:ffff:ffff:ffff:ffff,IN 2404:4a00::,2404:4a00:ffff:ffff:ffff:ffff:ffff:ffff,TH +2404:4a80::,2404:4a80:ffff:ffff:ffff:ffff:ffff:ffff,IN +2404:4b80::,2404:4b80:ffff:ffff:ffff:ffff:ffff:ffff,BD 2404:4c00::,2404:4c00:ffff:ffff:ffff:ffff:ffff:ffff,AU +2404:4c80::,2404:4c80:ffff:ffff:ffff:ffff:ffff:ffff,IN 2404:4d00::,2404:4d00:ffff:ffff:ffff:ffff:ffff:ffff,CN +2404:4d80::,2404:4d80:ffff:ffff:ffff:ffff:ffff:ffff,AU 2404:4e00::,2404:4e00:ffff:ffff:ffff:ffff:ffff:ffff,SG +2404:4e80::,2404:4e80:ffff:ffff:ffff:ffff:ffff:ffff,CN 2404:4f00::,2404:4f01:ffff:ffff:ffff:ffff:ffff:ffff,AU +2404:4f80::,2404:4f80:ffff:ffff:ffff:ffff:ffff:ffff,BD 2404:5000::,2404:5000:ffff:ffff:ffff:ffff:ffff:ffff,AU +2404:5080::,2404:5080:ffff:ffff:ffff:ffff:ffff:ffff,AU 2404:5100::,2404:5100:ffff:ffff:ffff:ffff:ffff:ffff,JP +2404:5180::,2404:5180:ffff:ffff:ffff:ffff:ffff:ffff,AU 2404:5200::,2404:5200:ffff:ffff:ffff:ffff:ffff:ffff,JP +2404:5280::,2404:5280:ffff:ffff:ffff:ffff:ffff:ffff,BD 2404:5300::,2404:5300:ffff:ffff:ffff:ffff:ffff:ffff,AU +2404:5380::,2404:5380:ffff:ffff:ffff:ffff:ffff:ffff,MY 2404:5400::,2404:5400:ffff:ffff:ffff:ffff:ffff:ffff,AU +2404:5480::,2404:5480:ffff:ffff:ffff:ffff:ffff:ffff,JP 2404:5500::,2404:5500:ffff:ffff:ffff:ffff:ffff:ffff,AU +2404:5580::,2404:5580:ffff:ffff:ffff:ffff:ffff:ffff,SG 2404:5600::,2404:5600:ffff:ffff:ffff:ffff:ffff:ffff,ID +2404:5680::,2404:5680:ffff:ffff:ffff:ffff:ffff:ffff,SG 2404:5700::,2404:5700:ffff:ffff:ffff:ffff:ffff:ffff,NZ +2404:5780::,2404:5780:ffff:ffff:ffff:ffff:ffff:ffff,IN 2404:5800::,2404:5800:ffff:ffff:ffff:ffff:ffff:ffff,SG +2404:5880::,2404:5880:ffff:ffff:ffff:ffff:ffff:ffff,AU 2404:5900::,2404:5900:ffff:ffff:ffff:ffff:ffff:ffff,TH +2404:5980::,2404:5980:ffff:ffff:ffff:ffff:ffff:ffff,ID 2404:5a00::,2404:5a00:ffff:ffff:ffff:ffff:ffff:ffff,ID +2404:5a80::,2404:5a80:ffff:ffff:ffff:ffff:ffff:ffff,CN 2404:5b00::,2404:5b00:ffff:ffff:ffff:ffff:ffff:ffff,CN +2404:5b80::,2404:5b80:ffff:ffff:ffff:ffff:ffff:ffff,NZ 2404:5c00::,2404:5c00:ffff:ffff:ffff:ffff:ffff:ffff,AU +2404:5c80::,2404:5c80:ffff:ffff:ffff:ffff:ffff:ffff,IN 2404:5d00::,2404:5d00:ffff:ffff:ffff:ffff:ffff:ffff,CN +2404:5d80::,2404:5d80:ffff:ffff:ffff:ffff:ffff:ffff,JP 2404:5e00::,2404:5e00:ffff:ffff:ffff:ffff:ffff:ffff,AU +2404:5e80::,2404:5e80:ffff:ffff:ffff:ffff:ffff:ffff,CN 2404:5f00::,2404:5f00:ffff:ffff:ffff:ffff:ffff:ffff,AU +2404:5f80::,2404:5f80:ffff:ffff:ffff:ffff:ffff:ffff,PH 2404:6000::,2404:6000:ffff:ffff:ffff:ffff:ffff:ffff,CN +2404:6080::,2404:6080:ffff:ffff:ffff:ffff:ffff:ffff,AU 2404:6100::,2404:6100:ffff:ffff:ffff:ffff:ffff:ffff,CN +2404:6180::,2404:6180:ffff:ffff:ffff:ffff:ffff:ffff,BD 2404:6200::,2404:6200:ffff:ffff:ffff:ffff:ffff:ffff,TW +2404:6280::,2404:6280:ffff:ffff:ffff:ffff:ffff:ffff,BD 2404:6300::,2404:6300:ffff:ffff:ffff:ffff:ffff:ffff,MY +2404:6380::,2404:6380:ffff:ffff:ffff:ffff:ffff:ffff,CN 2404:6400::,2404:6400:ffff:ffff:ffff:ffff:ffff:ffff,PG +2404:6480::,2404:6480:ffff:ffff:ffff:ffff:ffff:ffff,BD 2404:6500::,2404:6500:ffff:ffff:ffff:ffff:ffff:ffff,CN +2404:6580::,2404:6580:ffff:ffff:ffff:ffff:ffff:ffff,BD 2404:6600::,2404:6600:ffff:ffff:ffff:ffff:ffff:ffff,NZ +2404:6680::,2404:6680:ffff:ffff:ffff:ffff:ffff:ffff,PK 2404:6700::,2404:6700:ffff:ffff:ffff:ffff:ffff:ffff,CN +2404:6780::,2404:6780:ffff:ffff:ffff:ffff:ffff:ffff,IN 2404:6800::,2404:6800:4002:ffff:ffff:ffff:ffff:ffff,AU 2404:6800:4003::,2404:6800:4003:ffff:ffff:ffff:ffff:ffff,SG 2404:6800:4004::,2404:6800:4007:ffff:ffff:ffff:ffff:ffff,AU @@ -7769,7 +7358,7 @@ 2405:7e00::,2405:7e00:ffff:ffff:ffff:ffff:ffff:ffff,TW 2405:7f00::,2405:7f00:ffff:ffff:ffff:ffff:ffff:ffff,AU 2405:8000::,2405:8000:ffff:ffff:ffff:ffff:ffff:ffff,JP -2405:8100::,2405:8100:ffff:ffff:ffff:ffff:ffff:ffff,HK +2405:8100::,2405:8100:ffff:ffff:ffff:ffff:ffff:ffff,US 2405:8200::,2405:8200:ffff:ffff:ffff:ffff:ffff:ffff,BD 2405:8300::,2405:8300:ffff:ffff:ffff:ffff:ffff:ffff,SB 2405:8400::,2405:8400:ffff:ffff:ffff:ffff:ffff:ffff,NZ @@ -7819,7 +7408,7 @@ 2405:b200::,2405:b200:ffff:ffff:ffff:ffff:ffff:ffff,HK 2405:b300::,2405:b300:ffff:ffff:ffff:ffff:ffff:ffff,CN 2405:b400::,2405:b400:ffff:ffff:ffff:ffff:ffff:ffff,NZ -2405:b500::,2405:b500:ffff:ffff:ffff:ffff:ffff:ffff,AU +2405:b500::,2405:b500:ffff:ffff:ffff:ffff:ffff:ffff,US 2405:b600::,2405:b600:ffff:ffff:ffff:ffff:ffff:ffff,AU 2405:b800::,2405:b800:ffff:ffff:ffff:ffff:ffff:ffff,PH 2405:b900::,2405:b900:ffff:ffff:ffff:ffff:ffff:ffff,ID @@ -7919,11 +7508,7 @@ 2406:1f00::,2406:1f00:ffff:ffff:ffff:ffff:ffff:ffff,AU 2406:2000::,2406:2000:ef95:ffff:ffff:ffff:ffff:ffff,TW 2406:2000:ef96::,2406:2000:ef96:7fff:ffff:ffff:ffff:ffff,HK -2406:2000:ef96:8000::,2406:2000:efa5:ffff:ffff:ffff:ffff:ffff,TW -2406:2000:efa6::,2406:2000:efa6:7fff:ffff:ffff:ffff:ffff,SG -2406:2000:efa6:8000::,2406:2000:efb9:ffff:ffff:ffff:ffff:ffff,TW -2406:2000:efba::,2406:2000:efba:7fff:ffff:ffff:ffff:ffff,HK -2406:2000:efba:8000::,2406:2000:ffff:ffff:ffff:ffff:ffff:ffff,TW +2406:2000:ef96:8000::,2406:2000:ffff:ffff:ffff:ffff:ffff:ffff,TW 2406:2100::,2406:2100:ffff:ffff:ffff:ffff:ffff:ffff,IN 2406:2200::,2406:2200:ffff:ffff:ffff:ffff:ffff:ffff,AU 2406:2300::,2406:2300:ffff:ffff:ffff:ffff:ffff:ffff,NZ @@ -8022,7 +7607,7 @@ 2406:8600::,2406:8600:ffff:ffff:ffff:ffff:ffff:ffff,IN 2406:8700::,2406:8700:ffff:ffff:ffff:ffff:ffff:ffff,AU 2406:8800::,2406:8800:ffff:ffff:ffff:ffff:ffff:ffff,IN -2406:8900::,2406:8901:ffff:ffff:ffff:ffff:ffff:ffff,AU +2406:8900::,2406:8900:ffff:ffff:ffff:ffff:ffff:ffff,AU 2406:8a00::,2406:8a00:ffff:ffff:ffff:ffff:ffff:ffff,AU 2406:8b00::,2406:8b00:ffff:ffff:ffff:ffff:ffff:ffff,MY 2406:8c00::,2406:8c00:ffff:ffff:ffff:ffff:ffff:ffff,JP @@ -8111,7 +7696,7 @@ 2406:e100::,2406:e100:ffff:ffff:ffff:ffff:ffff:ffff,PH 2406:e200::,2406:e200:ffff:ffff:ffff:ffff:ffff:ffff,HK 2406:e300::,2406:e300:ffff:ffff:ffff:ffff:ffff:ffff,HK -2406:e400::,2406:e400:ffff:ffff:ffff:ffff:ffff:ffff,MV +2406:e400::,2406:e401:ffff:ffff:ffff:ffff:ffff:ffff,MV 2406:e500::,2406:e500:ffff:ffff:ffff:ffff:ffff:ffff,CN 2406:e600::,2406:e600:ffff:ffff:ffff:ffff:ffff:ffff,AU 2406:e700::,2406:e700:ffff:ffff:ffff:ffff:ffff:ffff,JP @@ -8295,7 +7880,6 @@ 2407:a600::,2407:a600:ffff:ffff:ffff:ffff:ffff:ffff,ID 2407:a700::,2407:a700:ffff:ffff:ffff:ffff:ffff:ffff,HK 2407:a800::,2407:a800:ffff:ffff:ffff:ffff:ffff:ffff,JP -2407:aa00::,2407:aa00:ffff:ffff:ffff:ffff:ffff:ffff,AU 2407:ab00::,2407:ab00:ffff:ffff:ffff:ffff:ffff:ffff,AU 2407:ac00::,2407:ac00:ffff:ffff:ffff:ffff:ffff:ffff,SG 2407:ad00::,2407:ad00:ffff:ffff:ffff:ffff:ffff:ffff,ID @@ -8394,13 +7978,7 @@ 240d::,240d:1f:ffff:ffff:ffff:ffff:ffff:ffff,JP 240d:8000::,240d:80ff:ffff:ffff:ffff:ffff:ffff:ffff,CN 240e::,240e:fff:ffff:ffff:ffff:ffff:ffff:ffff,CN -240f::,240f:74:c239:ffff:ffff:ffff:ffff:ffff,JP -240f:74:c23a::,240f:74:c23a:7fff:ffff:ffff:ffff:ffff,US -240f:74:c23a:8000::,240f:78:8491:ffff:ffff:ffff:ffff:ffff,JP -240f:78:8492::,240f:78:8492:7fff:ffff:ffff:ffff:ffff,GB -240f:78:8492:8000::,240f:93:b6d:ffff:ffff:ffff:ffff:ffff,JP -240f:93:b6e::,240f:93:b6e:7fff:ffff:ffff:ffff:ffff,US -240f:93:b6e:8000::,240f:ff:ffff:ffff:ffff:ffff:ffff:ffff,JP +240f::,240f:ff:ffff:ffff:ffff:ffff:ffff:ffff,JP 240f:8000::,240f:80ff:ffff:ffff:ffff:ffff:ffff:ffff,CN 2600::,2600:7:ffff:ffff:ffff:ffff:ffff:ffff,US 2600:100::,2600:10f:ffff:ffff:ffff:ffff:ffff:ffff,US @@ -8462,13 +8040,7 @@ 2600:a000::,2600:a00f:ffff:ffff:ffff:ffff:ffff:ffff,US 2600:a400::,2600:a40f:ffff:ffff:ffff:ffff:ffff:ffff,US 2600:e000::,2600:e00f:ffff:ffff:ffff:ffff:ffff:ffff,CA -2601::,2601:6:117f:ffff:ffff:ffff:ffff:ffff,US -2601:6:1180::,2601:6:1180:ffff:ffff:ffff:ffff:ffff,CA -2601:6:1181::,2601:186:ffff:ffff:ffff:ffff:ffff:ffff,US -2601:187::,2601:187:1:7fff:ffff:ffff:ffff:ffff,CA -2601:187:1:8000::,2601:187:7f:ffff:ffff:ffff:ffff:ffff,US -2601:187:80::,2601:187:80:7fff:ffff:ffff:ffff:ffff,CA -2601:187:80:8000::,2601:fff:ffff:ffff:ffff:ffff:ffff:ffff,US +2601::,2601:fff:ffff:ffff:ffff:ffff:ffff:ffff,US 2602::,2602:10f:ffff:ffff:ffff:ffff:ffff:ffff,US 2602:200::,2602:200:ffff:ffff:ffff:ffff:ffff:ffff,CA 2602:210::,2602:210:ffff:ffff:ffff:ffff:ffff:ffff,CA @@ -8476,6 +8048,17 @@ 2602:230::,2602:231:ffff:ffff:ffff:ffff:ffff:ffff,US 2602:240::,2602:25f:ffff:ffff:ffff:ffff:ffff:ffff,US 2602:300::,2602:3ff:ffff:ffff:ffff:ffff:ffff:ffff,US +2602:ff55::,2602:ff55:fff:ffff:ffff:ffff:ffff:ffff,US +2602:ff56::,2602:ff56:fff:ffff:ffff:ffff:ffff:ffff,PR +2602:ff57::,2602:ff57:fff:ffff:ffff:ffff:ffff:ffff,US +2602:ff58::,2602:ff58:fff:ffff:ffff:ffff:ffff:ffff,US +2602:ff59::,2602:ff59:fff:ffff:ffff:ffff:ffff:ffff,US +2602:ff5a::,2602:ff5a:fff:ffff:ffff:ffff:ffff:ffff,US +2602:ff5b::,2602:ff5b:fff:ffff:ffff:ffff:ffff:ffff,US +2602:ff5c::,2602:ff5c:fff:ffff:ffff:ffff:ffff:ffff,US +2602:ff5d::,2602:ff5d:fff:ffff:ffff:ffff:ffff:ffff,US +2602:ff5e::,2602:ff5e:fff:ffff:ffff:ffff:ffff:ffff,US +2602:ff5f::,2602:ff5f:fff:ffff:ffff:ffff:ffff:ffff,US 2602:ff60::,2602:ff60:fff:ffff:ffff:ffff:ffff:ffff,US 2602:ff61::,2602:ff61:fff:ffff:ffff:ffff:ffff:ffff,US 2602:ff62::,2602:ff62:fff:ffff:ffff:ffff:ffff:ffff,US @@ -8500,7 +8083,6 @@ 2602:ff75::,2602:ff75:fff:ffff:ffff:ffff:ffff:ffff,US 2602:ff76::,2602:ff76:fff:ffff:ffff:ffff:ffff:ffff,CA 2602:ff77::,2602:ff77:fff:ffff:ffff:ffff:ffff:ffff,US -2602:ff78::,2602:ff78:fff:ffff:ffff:ffff:ffff:ffff,US 2602:ff79::,2602:ff79:fff:ffff:ffff:ffff:ffff:ffff,US 2602:ff7a::,2602:ff7b:fff:ffff:ffff:ffff:ffff:ffff,US 2602:ff7c::,2602:ff7c:fff:ffff:ffff:ffff:ffff:ffff,US @@ -8600,9 +8182,7 @@ 2602:ffd7::,2602:ffd7:fff:ffff:ffff:ffff:ffff:ffff,US 2602:ffd8::,2602:ffd8:fff:ffff:ffff:ffff:ffff:ffff,US 2602:ffd9::,2602:ffd9:fff:ffff:ffff:ffff:ffff:ffff,US -2602:ffda::,2602:ffda:aa9:ffff:ffff:ffff:ffff:ffff,US -2602:ffda:aaa::,2602:ffda:aaa:7fff:ffff:ffff:ffff:ffff,NL -2602:ffda:aaa:8000::,2602:ffda:fff:ffff:ffff:ffff:ffff:ffff,US +2602:ffda::,2602:ffda:fff:ffff:ffff:ffff:ffff:ffff,US 2602:ffdb::,2602:ffdb:fff:ffff:ffff:ffff:ffff:ffff,US 2602:ffdc::,2602:ffdc:fff:ffff:ffff:ffff:ffff:ffff,US 2602:ffdd::,2602:ffdd:fff:ffff:ffff:ffff:ffff:ffff,US @@ -8618,7 +8198,7 @@ 2602:ffe7::,2602:ffe7:fff:ffff:ffff:ffff:ffff:ffff,PR 2602:ffe8::,2602:ffe8:3ff:ffff:ffff:ffff:ffff:ffff,US 2602:ffe8:400::,2602:ffe8:4ff:ffff:ffff:ffff:ffff:ffff,AU -2602:ffe8:500::,2602:ffe9:fff:ffff:ffff:ffff:ffff:ffff,US +2602:ffe8:500::,2602:ffe8:ffff:ffff:ffff:ffff:ffff:ffff,US 2602:ffea::,2602:ffeb:fff:ffff:ffff:ffff:ffff:ffff,US 2602:ffec::,2602:ffec:fff:ffff:ffff:ffff:ffff:ffff,CA 2602:ffed::,2602:ffed:fff:ffff:ffff:ffff:ffff:ffff,US @@ -8639,8 +8219,144 @@ 2602:fffc::,2602:fffc:ffff:ffff:ffff:ffff:ffff:ffff,US 2602:fffd::,2602:fffd:fff:ffff:ffff:ffff:ffff:ffff,CA 2602:ffff::,2602:ffff:fff:ffff:ffff:ffff:ffff:ffff,US -2603::,2603:10ff:ffff:ffff:ffff:ffff:ffff:ffff,US +2603::,2603:100f:ffff:ffff:ffff:ffff:ffff:ffff,US +2603:1010::,2603:1010::ffff:ffff:ffff:ffff:ffff,AU +2603:1010:1::,2603:1010:3:ffff:ffff:ffff:ffff:ffff,US +2603:1010:4::,2603:1010:4:ffff:ffff:ffff:ffff:ffff,AU +2603:1010:5::,2603:1010:ff:ffff:ffff:ffff:ffff:ffff,US +2603:1010:100::,2603:1010:100:ffff:ffff:ffff:ffff:ffff,AU +2603:1010:101::,2603:1010:200:ffff:ffff:ffff:ffff:ffff,US +2603:1010:201::,2603:1010:201:ffff:ffff:ffff:ffff:ffff,AU +2603:1010:202::,2603:1015:ffff:ffff:ffff:ffff:ffff:ffff,US +2603:1016::,2603:1016::ffff:ffff:ffff:ffff:ffff,AU +2603:1016:1::,2603:1016:1f:ffff:ffff:ffff:ffff:ffff,US +2603:1016:20::,2603:1016:20:ffff:ffff:ffff:ffff:ffff,AU +2603:1016:21::,2603:1016:27:ffff:ffff:ffff:ffff:ffff,US +2603:1016:28::,2603:1016:28:ffff:ffff:ffff:ffff:ffff,AU +2603:1016:29::,2603:1018:ffff:ffff:ffff:ffff:ffff:ffff,US +2603:1019::,2603:1019::ffff:ffff:ffff:ffff:ffff,AU +2603:1019:1::,2603:1019:ff:ffff:ffff:ffff:ffff:ffff,US +2603:1019:100::,2603:1019:100:ffff:ffff:ffff:ffff:ffff,AU +2603:1019:101::,2603:1019:1ff:ffff:ffff:ffff:ffff:ffff,US +2603:1019:200::,2603:1019:200:ffff:ffff:ffff:ffff:ffff,AU +2603:1019:201::,2603:1020:1ff:ffff:ffff:ffff:ffff:ffff,US +2603:1020:200::,2603:1020:201:ffff:ffff:ffff:ffff:ffff,NL +2603:1020:202::,2603:1023:ffff:ffff:ffff:ffff:ffff:ffff,US +2603:1024::,2603:1024:1:ffff:ffff:ffff:ffff:ffff,IE +2603:1024:2::,2603:1024:1ff:ffff:ffff:ffff:ffff:ffff,US +2603:1024:200::,2603:1024:201:ffff:ffff:ffff:ffff:ffff,NL +2603:1024:202::,2603:1026:2:ffff:ffff:ffff:ffff:ffff,US +2603:1026:3::,2603:1026:3:ffff:ffff:ffff:ffff:ffff,FI +2603:1026:4::,2603:1026:5:ffff:ffff:ffff:ffff:ffff,IE +2603:1026:6::,2603:1026:22:ffff:ffff:ffff:ffff:ffff,US +2603:1026:23::,2603:1026:23:ffff:ffff:ffff:ffff:ffff,FI +2603:1026:24::,2603:1026:25:ffff:ffff:ffff:ffff:ffff,IE +2603:1026:26::,2603:1026:2a:ffff:ffff:ffff:ffff:ffff,US +2603:1026:2b::,2603:1026:2b:ffff:ffff:ffff:ffff:ffff,FI +2603:1026:2c::,2603:1026:2d:ffff:ffff:ffff:ffff:ffff,IE +2603:1026:2e::,2603:1026:202:ffff:ffff:ffff:ffff:ffff,US +2603:1026:203::,2603:1026:203:ffff:ffff:ffff:ffff:ffff,NL +2603:1026:204::,2603:1026:222:ffff:ffff:ffff:ffff:ffff,US +2603:1026:223::,2603:1026:223:ffff:ffff:ffff:ffff:ffff,NL +2603:1026:224::,2603:1026:2ff:ffff:ffff:ffff:ffff:ffff,US +2603:1026:300::,2603:1026:300:ffff:ffff:ffff:ffff:ffff,AT +2603:1026:301::,2603:1026:327:ffff:ffff:ffff:ffff:ffff,US +2603:1026:328::,2603:1026:328:ffff:ffff:ffff:ffff:ffff,AT +2603:1026:329::,2603:1026:5ff:ffff:ffff:ffff:ffff:ffff,US +2603:1026:600::,2603:1026:600:ffff:ffff:ffff:ffff:ffff,GB +2603:1026:601::,2603:1026:627:ffff:ffff:ffff:ffff:ffff,US +2603:1026:628::,2603:1026:630:ffff:ffff:ffff:ffff:ffff,GB +2603:1026:631::,2603:1026:7ff:ffff:ffff:ffff:ffff:ffff,US +2603:1026:800::,2603:1026:800:ffff:ffff:ffff:ffff:ffff,GB +2603:1026:801::,2603:1026:827:ffff:ffff:ffff:ffff:ffff,US +2603:1026:828::,2603:1026:828:ffff:ffff:ffff:ffff:ffff,GB +2603:1026:829::,2603:1028:ffff:ffff:ffff:ffff:ffff:ffff,US +2603:1029::,2603:1029::ffff:ffff:ffff:ffff:ffff,DE +2603:1029:1::,2603:1029:1ff:ffff:ffff:ffff:ffff:ffff,US +2603:1029:200::,2603:1029:200:ffff:ffff:ffff:ffff:ffff,DE +2603:1029:201::,2603:1029:2ff:ffff:ffff:ffff:ffff:ffff,US +2603:1029:300::,2603:1029:300:ffff:ffff:ffff:ffff:ffff,AT +2603:1029:301::,2603:1029:3ff:ffff:ffff:ffff:ffff:ffff,US +2603:1029:400::,2603:1029:404:ffff:ffff:ffff:ffff:ffff,IE +2603:1029:405::,2603:1029:5ff:ffff:ffff:ffff:ffff:ffff,US +2603:1029:600::,2603:1029:605:ffff:ffff:ffff:ffff:ffff,NL +2603:1029:606::,2603:1029:606:ffff:ffff:ffff:ffff:ffff,SE +2603:1029:607::,2603:1029:aff:ffff:ffff:ffff:ffff:ffff,US +2603:1029:b00::,2603:1029:b00:ffff:ffff:ffff:ffff:ffff,GB +2603:1029:b01::,2603:1029:bff:ffff:ffff:ffff:ffff:ffff,US +2603:1029:c00::,2603:1029:c00:ffff:ffff:ffff:ffff:ffff,GB +2603:1029:c01::,2603:1030:208:ffff:ffff:ffff:ffff:ffff,US +2603:1030:209::,2603:1030:20b:ffff:ffff:ffff:ffff:ffff,CA +2603:1030:20c::,2603:1039:dff:ffff:ffff:ffff:ffff:ffff,US +2603:1039:e00::,2603:1039:e01:ffff:ffff:ffff:ffff:ffff,CA +2603:1039:e02::,2603:1039:fff:ffff:ffff:ffff:ffff:ffff,US +2603:1039:1000::,2603:1039:1001:ffff:ffff:ffff:ffff:ffff,CA +2603:1039:1002::,2603:1040:201:ffff:ffff:ffff:ffff:ffff,US +2603:1040:202::,2603:1040:203:ffff:ffff:ffff:ffff:ffff,HK +2603:1040:204::,2603:1040:3ff:ffff:ffff:ffff:ffff:ffff,US +2603:1040:400::,2603:1040:400:ffff:ffff:ffff:ffff:ffff,JP +2603:1040:401::,2603:1045:ffff:ffff:ffff:ffff:ffff:ffff,US +2603:1046::,2603:1046:2:ffff:ffff:ffff:ffff:ffff,SG +2603:1046:3::,2603:1046:1f:ffff:ffff:ffff:ffff:ffff,US +2603:1046:20::,2603:1046:22:ffff:ffff:ffff:ffff:ffff,SG +2603:1046:23::,2603:1046:27:ffff:ffff:ffff:ffff:ffff,US +2603:1046:28::,2603:1046:2a:ffff:ffff:ffff:ffff:ffff,SG +2603:1046:2b::,2603:1046:1ff:ffff:ffff:ffff:ffff:ffff,US +2603:1046:200::,2603:1046:201:ffff:ffff:ffff:ffff:ffff,HK +2603:1046:202::,2603:1046:21f:ffff:ffff:ffff:ffff:ffff,US +2603:1046:220::,2603:1046:221:ffff:ffff:ffff:ffff:ffff,HK +2603:1046:222::,2603:1046:227:ffff:ffff:ffff:ffff:ffff,US +2603:1046:228::,2603:1046:229:ffff:ffff:ffff:ffff:ffff,HK +2603:1046:22a::,2603:1046:3ff:ffff:ffff:ffff:ffff:ffff,US +2603:1046:400::,2603:1046:401:ffff:ffff:ffff:ffff:ffff,JP +2603:1046:402::,2603:1046:41f:ffff:ffff:ffff:ffff:ffff,US +2603:1046:420::,2603:1046:421:ffff:ffff:ffff:ffff:ffff,JP +2603:1046:422::,2603:1046:427:ffff:ffff:ffff:ffff:ffff,US +2603:1046:428::,2603:1046:429:ffff:ffff:ffff:ffff:ffff,JP +2603:1046:42a::,2603:1046:5ff:ffff:ffff:ffff:ffff:ffff,US +2603:1046:600::,2603:1046:601:ffff:ffff:ffff:ffff:ffff,JP +2603:1046:602::,2603:1046:61f:ffff:ffff:ffff:ffff:ffff,US +2603:1046:620::,2603:1046:621:ffff:ffff:ffff:ffff:ffff,JP +2603:1046:622::,2603:1046:627:ffff:ffff:ffff:ffff:ffff,US +2603:1046:628::,2603:1046:629:ffff:ffff:ffff:ffff:ffff,JP +2603:1046:62a::,2603:1046:7ff:ffff:ffff:ffff:ffff:ffff,US +2603:1046:800::,2603:1046:800:ffff:ffff:ffff:ffff:ffff,MY +2603:1046:801::,2603:1046:81f:ffff:ffff:ffff:ffff:ffff,US +2603:1046:820::,2603:1046:820:ffff:ffff:ffff:ffff:ffff,MY +2603:1046:821::,2603:1046:821:ffff:ffff:ffff:ffff:ffff,KR +2603:1046:822::,2603:1048:ffff:ffff:ffff:ffff:ffff:ffff,US +2603:1049::,2603:1049:3:ffff:ffff:ffff:ffff:ffff,SG +2603:1049:4::,2603:1049:1ff:ffff:ffff:ffff:ffff:ffff,US +2603:1049:200::,2603:1049:201:ffff:ffff:ffff:ffff:ffff,HK +2603:1049:202::,2603:1049:3ff:ffff:ffff:ffff:ffff:ffff,US +2603:1049:400::,2603:1049:401:ffff:ffff:ffff:ffff:ffff,JP +2603:1049:402::,2603:1049:5ff:ffff:ffff:ffff:ffff:ffff,US +2603:1049:600::,2603:1049:601:ffff:ffff:ffff:ffff:ffff,JP +2603:1049:602::,2603:1049:7ff:ffff:ffff:ffff:ffff:ffff,US +2603:1049:800::,2603:1049:802:ffff:ffff:ffff:ffff:ffff,CN +2603:1049:803::,2603:1049:9ff:ffff:ffff:ffff:ffff:ffff,US +2603:1049:a00::,2603:1049:a00:ffff:ffff:ffff:ffff:ffff,CN +2603:1049:a01::,2603:1049:dff:ffff:ffff:ffff:ffff:ffff,US +2603:1049:e00::,2603:1049:e00:ffff:ffff:ffff:ffff:ffff,IN +2603:1049:e01::,2603:1049:fff:ffff:ffff:ffff:ffff:ffff,US +2603:1049:1000::,2603:1049:1000:ffff:ffff:ffff:ffff:ffff,IN +2603:1049:1001::,2603:104f:ffff:ffff:ffff:ffff:ffff:ffff,US +2603:1050::,2603:1050::ffff:ffff:ffff:ffff:ffff,BR +2603:1050:1::,2603:1056:1f:ffff:ffff:ffff:ffff:ffff,US +2603:1056:20::,2603:1056:20:ffff:ffff:ffff:ffff:ffff,BR +2603:1056:21::,2603:1056:27:ffff:ffff:ffff:ffff:ffff,US +2603:1056:28::,2603:1056:28:ffff:ffff:ffff:ffff:ffff,BR +2603:1056:29::,2603:1058:f:ffff:ffff:ffff:ffff:ffff,US +2603:1058:10::,2603:1058:1f:ffff:ffff:ffff:ffff:ffff,CL +2603:1058:20::,2603:1058:ffff:ffff:ffff:ffff:ffff:ffff,US +2603:1059::,2603:1059::ffff:ffff:ffff:ffff:ffff,BR +2603:1059:1::,2603:1059:1:ffff:ffff:ffff:ffff:ffff,CL +2603:1059:2::,2603:1059:ff:ffff:ffff:ffff:ffff:ffff,US +2603:1059:100::,2603:1059:100:ffff:ffff:ffff:ffff:ffff,BR +2603:1059:101::,2603:10ff:ffff:ffff:ffff:ffff:ffff:ffff,US 2603:2000::,2603:30ff:ffff:ffff:ffff:ffff:ffff:ffff,US +2603:4000::,2603:40ff:ffff:ffff:ffff:ffff:ffff:ffff,US +2603:5000::,2603:50ff:ffff:ffff:ffff:ffff:ffff:ffff,US 2604::,2604::ffff:ffff:ffff:ffff:ffff:ffff,US 2604:10::,2604:10:ffff:ffff:ffff:ffff:ffff:ffff,US 2604:100::,2604:100:ffff:ffff:ffff:ffff:ffff:ffff,US @@ -8663,7 +8379,6 @@ 2604:980::,2604:980:ffff:ffff:ffff:ffff:ffff:ffff,US 2604:a00::,2604:a00:ffff:ffff:ffff:ffff:ffff:ffff,US 2604:a80::,2604:a80:ffff:ffff:ffff:ffff:ffff:ffff,US -2604:b00::,2604:b00:ffff:ffff:ffff:ffff:ffff:ffff,US 2604:b80::,2604:b80:ffff:ffff:ffff:ffff:ffff:ffff,US 2604:c00::,2604:c00:ffff:ffff:ffff:ffff:ffff:ffff,US 2604:c80::,2604:c80:ffff:ffff:ffff:ffff:ffff:ffff,US @@ -8693,7 +8408,6 @@ 2604:1900::,2604:1900:ffff:ffff:ffff:ffff:ffff:ffff,US 2604:1980::,2604:1980:ffff:ffff:ffff:ffff:ffff:ffff,US 2604:1a00::,2604:1a00:ffff:ffff:ffff:ffff:ffff:ffff,US -2604:1a80::,2604:1a80:ffff:ffff:ffff:ffff:ffff:ffff,US 2604:1b00::,2604:1b00:ffff:ffff:ffff:ffff:ffff:ffff,CA 2604:1b80::,2604:1b80:ffff:ffff:ffff:ffff:ffff:ffff,US 2604:1c00::,2604:1c00:ffff:ffff:ffff:ffff:ffff:ffff,US @@ -8950,7 +8664,7 @@ 2604:9c80::,2604:9c80:ffff:ffff:ffff:ffff:ffff:ffff,US 2604:9d00::,2604:9d00:ffff:ffff:ffff:ffff:ffff:ffff,US 2604:9d80::,2604:9d80:ffff:ffff:ffff:ffff:ffff:ffff,US -2604:9e00::,2604:9e00:ffff:ffff:ffff:ffff:ffff:ffff,US +2604:9e00::,2604:9e01:ffff:ffff:ffff:ffff:ffff:ffff,US 2604:9e80::,2604:9e80:ffff:ffff:ffff:ffff:ffff:ffff,CA 2604:9f00::,2604:9f00:ffff:ffff:ffff:ffff:ffff:ffff,US 2604:9f80::,2604:9f80:ffff:ffff:ffff:ffff:ffff:ffff,US @@ -8971,8 +8685,8 @@ 2604:a780::,2604:a780:ffff:ffff:ffff:ffff:ffff:ffff,US 2604:a800::,2604:a800:ffff:ffff:ffff:ffff:ffff:ffff,US 2604:a880::,2604:a880:cac:ffff:ffff:ffff:ffff:ffff,US -2604:a880:cad::,2604:a880:cad:7fff:ffff:ffff:ffff:ffff,CA -2604:a880:cad:8000::,2604:a880:ffff:ffff:ffff:ffff:ffff:ffff,US +2604:a880:cad::,2604:a880:cad:ffff:ffff:ffff:ffff:ffff,CA +2604:a880:cae::,2604:a880:ffff:ffff:ffff:ffff:ffff:ffff,US 2604:a900::,2604:a900:ffff:ffff:ffff:ffff:ffff:ffff,US 2604:a980::,2604:a980:ffff:ffff:ffff:ffff:ffff:ffff,US 2604:aa00::,2604:aa00:ffff:ffff:ffff:ffff:ffff:ffff,US @@ -9002,6 +8716,7 @@ 2604:b600::,2604:b600:ffff:ffff:ffff:ffff:ffff:ffff,US 2604:b680::,2604:b680:ffff:ffff:ffff:ffff:ffff:ffff,US 2604:b700::,2604:b700:ffff:ffff:ffff:ffff:ffff:ffff,US +2604:b780::,2604:b780:fff:ffff:ffff:ffff:ffff:ffff,US 2604:b800::,2604:b800:ffff:ffff:ffff:ffff:ffff:ffff,US 2604:b880::,2604:b880:ffff:ffff:ffff:ffff:ffff:ffff,US 2604:b900::,2604:b900:ffff:ffff:ffff:ffff:ffff:ffff,US @@ -9063,7 +8778,7 @@ 2604:d600::,2604:d600:ffff:ffff:ffff:ffff:ffff:ffff,US 2604:d680::,2604:d680:ffff:ffff:ffff:ffff:ffff:ffff,US 2604:d700::,2604:d700:ffff:ffff:ffff:ffff:ffff:ffff,US -2604:d780::,2604:d780:ffff:ffff:ffff:ffff:ffff:ffff,US +2604:d780::,2604:d780:ffff:ffff:ffff:ffff:ffff:ffff,CA 2604:d800::,2604:d801:ffff:ffff:ffff:ffff:ffff:ffff,US 2604:d900::,2604:d900:ffff:ffff:ffff:ffff:ffff:ffff,US 2604:d980::,2604:d980:ffff:ffff:ffff:ffff:ffff:ffff,CA @@ -9159,7 +8874,7 @@ 2605:900::,2605:900:ffff:ffff:ffff:ffff:ffff:ffff,US 2605:980::,2605:980:ffff:ffff:ffff:ffff:ffff:ffff,US 2605:a00::,2605:a00:ffff:ffff:ffff:ffff:ffff:ffff,US -2605:a80::,2605:a80:ffff:ffff:ffff:ffff:ffff:ffff,CA +2605:a80::,2605:a80:ffff:ffff:ffff:ffff:ffff:ffff,US 2605:b00::,2605:b00:fff:ffff:ffff:ffff:ffff:ffff,US 2605:b80::,2605:b80:ffff:ffff:ffff:ffff:ffff:ffff,US 2605:c00::,2605:c00:ffff:ffff:ffff:ffff:ffff:ffff,CA @@ -9545,7 +9260,7 @@ 2605:d180::,2605:d180:ffff:ffff:ffff:ffff:ffff:ffff,US 2605:d280::,2605:d280:ffff:ffff:ffff:ffff:ffff:ffff,US 2605:d300::,2605:d300:ffff:ffff:ffff:ffff:ffff:ffff,US -2605:d380::,2605:d380:ffff:ffff:ffff:ffff:ffff:ffff,US +2605:d380::,2605:d380:fff:ffff:ffff:ffff:ffff:ffff,US 2605:d400::,2605:d400:ffff:ffff:ffff:ffff:ffff:ffff,US 2605:d480::,2605:d480:ffff:ffff:ffff:ffff:ffff:ffff,US 2605:d500::,2605:d500:ffff:ffff:ffff:ffff:ffff:ffff,CA @@ -9668,7 +9383,6 @@ 2606:1100::,2606:1100:ffff:ffff:ffff:ffff:ffff:ffff,US 2606:1180::,2606:1180:ffff:ffff:ffff:ffff:ffff:ffff,US 2606:1200::,2606:1200:ffff:ffff:ffff:ffff:ffff:ffff,US -2606:1280::,2606:1280:ffff:ffff:ffff:ffff:ffff:ffff,US 2606:1300::,2606:1300:ffff:ffff:ffff:ffff:ffff:ffff,US 2606:1380::,2606:1380:ffff:ffff:ffff:ffff:ffff:ffff,US 2606:1400::,2606:1400:ffff:ffff:ffff:ffff:ffff:ffff,US @@ -9710,7 +9424,51 @@ 2606:2680::,2606:2680:ffff:ffff:ffff:ffff:ffff:ffff,US 2606:2700::,2606:2700:ffff:ffff:ffff:ffff:ffff:ffff,CA 2606:2780::,2606:2780:ffff:ffff:ffff:ffff:ffff:ffff,US -2606:2800::,2606:2800:ffff:ffff:ffff:ffff:ffff:ffff,US +2606:2800::,2606:2800:420a:ffff:ffff:ffff:ffff:ffff,US +2606:2800:420b::,2606:2800:420b:ffff:ffff:ffff:ffff:ffff,BR +2606:2800:420c::,2606:2800:420c:ffff:ffff:ffff:ffff:ffff,US +2606:2800:420d::,2606:2800:420d:ffff:ffff:ffff:ffff:ffff,EC +2606:2800:420e::,2606:2800:5000:ffff:ffff:ffff:ffff:ffff,US +2606:2800:5001::,2606:2800:5001:ffff:ffff:ffff:ffff:ffff,ES +2606:2800:5002::,2606:2800:500f:ffff:ffff:ffff:ffff:ffff,US +2606:2800:5010::,2606:2800:5011:ffff:ffff:ffff:ffff:ffff,GB +2606:2800:5012::,2606:2800:501f:ffff:ffff:ffff:ffff:ffff,US +2606:2800:5020::,2606:2800:5021:ffff:ffff:ffff:ffff:ffff,DE +2606:2800:5022::,2606:2800:5030:ffff:ffff:ffff:ffff:ffff,US +2606:2800:5031::,2606:2800:5033:ffff:ffff:ffff:ffff:ffff,FR +2606:2800:5034::,2606:2800:503f:ffff:ffff:ffff:ffff:ffff,US +2606:2800:5040::,2606:2800:5041:ffff:ffff:ffff:ffff:ffff,NL +2606:2800:5042::,2606:2800:504f:ffff:ffff:ffff:ffff:ffff,US +2606:2800:5050::,2606:2800:5051:ffff:ffff:ffff:ffff:ffff,AT +2606:2800:5052::,2606:2800:505f:ffff:ffff:ffff:ffff:ffff,US +2606:2800:5060::,2606:2800:5061:ffff:ffff:ffff:ffff:ffff,SE +2606:2800:5062::,2606:2800:506f:ffff:ffff:ffff:ffff:ffff,US +2606:2800:5070::,2606:2800:5071:ffff:ffff:ffff:ffff:ffff,DE +2606:2800:5072::,2606:2800:507f:ffff:ffff:ffff:ffff:ffff,US +2606:2800:5080::,2606:2800:5080:ffff:ffff:ffff:ffff:ffff,IT +2606:2800:5081::,2606:2800:508f:ffff:ffff:ffff:ffff:ffff,US +2606:2800:5090::,2606:2800:5090:ffff:ffff:ffff:ffff:ffff,PL +2606:2800:5091::,2606:2800:5fff:ffff:ffff:ffff:ffff:ffff,US +2606:2800:6000::,2606:2800:6001:ffff:ffff:ffff:ffff:ffff,SG +2606:2800:6002::,2606:2800:600f:ffff:ffff:ffff:ffff:ffff,US +2606:2800:6010::,2606:2800:6011:ffff:ffff:ffff:ffff:ffff,HK +2606:2800:6012::,2606:2800:601f:ffff:ffff:ffff:ffff:ffff,US +2606:2800:6020::,2606:2800:6023:ffff:ffff:ffff:ffff:ffff,JP +2606:2800:6024::,2606:2800:6027:ffff:ffff:ffff:ffff:ffff,US +2606:2800:6028::,2606:2800:6029:ffff:ffff:ffff:ffff:ffff,JP +2606:2800:602a::,2606:2800:602a:ffff:ffff:ffff:ffff:ffff,US +2606:2800:602b::,2606:2800:602b:ffff:ffff:ffff:ffff:ffff,JP +2606:2800:602c::,2606:2800:602f:ffff:ffff:ffff:ffff:ffff,US +2606:2800:6030::,2606:2800:6031:ffff:ffff:ffff:ffff:ffff,AU +2606:2800:6032::,2606:2800:6032:ffff:ffff:ffff:ffff:ffff,US +2606:2800:6033::,2606:2800:6033:ffff:ffff:ffff:ffff:ffff,AU +2606:2800:6034::,2606:2800:603f:ffff:ffff:ffff:ffff:ffff,US +2606:2800:6040::,2606:2800:6041:ffff:ffff:ffff:ffff:ffff,HK +2606:2800:6042::,2606:2800:60ef:ffff:ffff:ffff:ffff:ffff,US +2606:2800:60f0::,2606:2800:60f3:ffff:ffff:ffff:ffff:ffff,IN +2606:2800:60f4::,2606:2800:7000:ffff:ffff:ffff:ffff:ffff,US +2606:2800:7001::,2606:2800:7001:ffff:ffff:ffff:ffff:ffff,CO +2606:2800:7002::,2606:2800:ffff:ffff:ffff:ffff:ffff:ffff,US 2606:2880::,2606:2880:ffff:ffff:ffff:ffff:ffff:ffff,US 2606:2900::,2606:2900:ffff:ffff:ffff:ffff:ffff:ffff,US 2606:2980::,2606:2980:ffff:ffff:ffff:ffff:ffff:ffff,US @@ -9722,9 +9480,7 @@ 2606:2c80::,2606:2c80:ffff:ffff:ffff:ffff:ffff:ffff,US 2606:2d00::,2606:2d00:fff:ffff:ffff:ffff:ffff:ffff,US 2606:2d80::,2606:2d80:ffff:ffff:ffff:ffff:ffff:ffff,US -2606:2e00::,2606:2e00:8001:ffff:ffff:ffff:ffff:ffff,US -2606:2e00:8002::,2606:2e00:8002:7fff:ffff:ffff:ffff:ffff,JP -2606:2e00:8002:8000::,2606:2e00:800a:2:ffff:ffff:ffff:ffff,US +2606:2e00::,2606:2e00:800a:2:ffff:ffff:ffff:ffff,US 2606:2e00:800a:3::,2606:2e00:800a:3:ffff:ffff:ffff:ffff,HK 2606:2e00:800a:4::,2606:2e00:ffff:ffff:ffff:ffff:ffff:ffff,US 2606:2e80::,2606:2e80:ffff:ffff:ffff:ffff:ffff:ffff,US @@ -9776,7 +9532,9 @@ 2606:4580::,2606:4580:ffff:ffff:ffff:ffff:ffff:ffff,CA 2606:4600::,2606:4600:ffff:ffff:ffff:ffff:ffff:ffff,US 2606:4680::,2606:4680:ffff:ffff:ffff:ffff:ffff:ffff,US -2606:4700::,2606:4700:ffff:ffff:ffff:ffff:ffff:ffff,US +2606:4700::,2606:4700:1000:7fff:ffff:ffff:ffff:ffff,US +2606:4700:1000:8000::,2606:4700:1000:ffff:ffff:ffff:ffff:ffff,DE +2606:4700:1001::,2606:4700:ffff:ffff:ffff:ffff:ffff:ffff,US 2606:4780::,2606:4780:ffff:ffff:ffff:ffff:ffff:ffff,US 2606:4800::,2606:4800:ffff:ffff:ffff:ffff:ffff:ffff,US 2606:4880::,2606:4880:ffff:ffff:ffff:ffff:ffff:ffff,US @@ -9895,7 +9653,6 @@ 2606:8100::,2606:8100:ffff:ffff:ffff:ffff:ffff:ffff,US 2606:8180::,2606:8180:ffff:ffff:ffff:ffff:ffff:ffff,US 2606:8200::,2606:8200:ffff:ffff:ffff:ffff:ffff:ffff,US -2606:8280::,2606:8280:ffff:ffff:ffff:ffff:ffff:ffff,US 2606:8300::,2606:830f:ffff:ffff:ffff:ffff:ffff:ffff,CA 2606:8380::,2606:8380:ffff:ffff:ffff:ffff:ffff:ffff,US 2606:8400::,2606:8400:ffff:ffff:ffff:ffff:ffff:ffff,US @@ -10083,43 +9840,82 @@ 2606:e000::,2606:e000:ffff:ffff:ffff:ffff:ffff:ffff,CA 2606:e080::,2606:e080:ffff:ffff:ffff:ffff:ffff:ffff,US 2606:e100::,2606:e100:ffff:ffff:ffff:ffff:ffff:ffff,US +2606:e180::,2606:e180:ffff:ffff:ffff:ffff:ffff:ffff,US 2606:e200::,2606:e200:ffff:ffff:ffff:ffff:ffff:ffff,US +2606:e280::,2606:e280:ffff:ffff:ffff:ffff:ffff:ffff,US 2606:e300::,2606:e300:ffff:ffff:ffff:ffff:ffff:ffff,US +2606:e380::,2606:e380:ffff:ffff:ffff:ffff:ffff:ffff,CA 2606:e400::,2606:e400:ffff:ffff:ffff:ffff:ffff:ffff,US +2606:e480::,2606:e480:ffff:ffff:ffff:ffff:ffff:ffff,US 2606:e500::,2606:e500:ffff:ffff:ffff:ffff:ffff:ffff,US +2606:e580::,2606:e580:ffff:ffff:ffff:ffff:ffff:ffff,US 2606:e600::,2606:e600:ffff:ffff:ffff:ffff:ffff:ffff,US +2606:e680::,2606:e680:ffff:ffff:ffff:ffff:ffff:ffff,US 2606:e700::,2606:e700:ffff:ffff:ffff:ffff:ffff:ffff,US +2606:e780::,2606:e780:ffff:ffff:ffff:ffff:ffff:ffff,US 2606:e800::,2606:e800:ffff:ffff:ffff:ffff:ffff:ffff,US +2606:e880::,2606:e880:ffff:ffff:ffff:ffff:ffff:ffff,US 2606:e900::,2606:e900:ffff:ffff:ffff:ffff:ffff:ffff,US +2606:e980::,2606:e980:ffff:ffff:ffff:ffff:ffff:ffff,US 2606:ea00::,2606:ea00:ffff:ffff:ffff:ffff:ffff:ffff,US +2606:ea80::,2606:ea80:ffff:ffff:ffff:ffff:ffff:ffff,US 2606:eb00::,2606:eb00:ffff:ffff:ffff:ffff:ffff:ffff,CA +2606:eb80::,2606:eb80:ffff:ffff:ffff:ffff:ffff:ffff,US 2606:ec00::,2606:ec00:ffff:ffff:ffff:ffff:ffff:ffff,US +2606:ec80::,2606:ec80:ffff:ffff:ffff:ffff:ffff:ffff,CA 2606:ed00::,2606:ed00:ffff:ffff:ffff:ffff:ffff:ffff,US +2606:ed80::,2606:ed80:ffff:ffff:ffff:ffff:ffff:ffff,US 2606:ee00::,2606:ee00:ffff:ffff:ffff:ffff:ffff:ffff,CA +2606:ee80::,2606:ee80:ffff:ffff:ffff:ffff:ffff:ffff,US 2606:ef00::,2606:ef00:ffff:ffff:ffff:ffff:ffff:ffff,US +2606:ef80::,2606:ef80:ffff:ffff:ffff:ffff:ffff:ffff,US 2606:f000::,2606:f000:ffff:ffff:ffff:ffff:ffff:ffff,US +2606:f080::,2606:f080:ffff:ffff:ffff:ffff:ffff:ffff,CA 2606:f100::,2606:f100:ffff:ffff:ffff:ffff:ffff:ffff,US +2606:f180::,2606:f180:ffff:ffff:ffff:ffff:ffff:ffff,US 2606:f200::,2606:f200:ffff:ffff:ffff:ffff:ffff:ffff,US +2606:f280::,2606:f280:ffff:ffff:ffff:ffff:ffff:ffff,CA 2606:f300::,2606:f300:ffff:ffff:ffff:ffff:ffff:ffff,US +2606:f380::,2606:f380:ffff:ffff:ffff:ffff:ffff:ffff,US 2606:f400::,2606:f40f:ffff:ffff:ffff:ffff:ffff:ffff,US +2606:f480::,2606:f480:ffff:ffff:ffff:ffff:ffff:ffff,US 2606:f500::,2606:f500:ffff:ffff:ffff:ffff:ffff:ffff,US +2606:f580::,2606:f580:ffff:ffff:ffff:ffff:ffff:ffff,KY 2606:f600::,2606:f600:ffff:ffff:ffff:ffff:ffff:ffff,US +2606:f680::,2606:f680:ffff:ffff:ffff:ffff:ffff:ffff,US 2606:f700::,2606:f700:ffff:ffff:ffff:ffff:ffff:ffff,CA +2606:f780::,2606:f780:ffff:ffff:ffff:ffff:ffff:ffff,US 2606:f800::,2606:f800:ffff:ffff:ffff:ffff:ffff:ffff,US +2606:f880::,2606:f880:ffff:ffff:ffff:ffff:ffff:ffff,CA 2606:f900::,2606:f900:ffff:ffff:ffff:ffff:ffff:ffff,CA +2606:f980::,2606:f980:ffff:ffff:ffff:ffff:ffff:ffff,US 2606:fa00::,2606:fa00:ffff:ffff:ffff:ffff:ffff:ffff,CA +2606:fa80::,2606:fa80:ffff:ffff:ffff:ffff:ffff:ffff,US +2606:fb80::,2606:fb80:ffff:ffff:ffff:ffff:ffff:ffff,US 2606:fc00::,2606:fc00:ffff:ffff:ffff:ffff:ffff:ffff,US +2606:fc80::,2606:fc80:ffff:ffff:ffff:ffff:ffff:ffff,US 2606:fd00::,2606:fd00:ffff:ffff:ffff:ffff:ffff:ffff,US +2606:fd80::,2606:fd80:ffff:ffff:ffff:ffff:ffff:ffff,US 2606:fe00::,2606:fe00:ffff:ffff:ffff:ffff:ffff:ffff,US +2606:fe80::,2606:fe80:ffff:ffff:ffff:ffff:ffff:ffff,US 2606:ff00::,2606:ff00:ffff:ffff:ffff:ffff:ffff:ffff,US +2606:ff80::,2606:ff80:ffff:ffff:ffff:ffff:ffff:ffff,US 2607::,2607::ffff:ffff:ffff:ffff:ffff:ffff,CA +2607:80::,2607:80:ffff:ffff:ffff:ffff:ffff:ffff,US 2607:100::,2607:100:ffff:ffff:ffff:ffff:ffff:ffff,CA +2607:180::,2607:180:ffff:ffff:ffff:ffff:ffff:ffff,CA 2607:200::,2607:200:ffff:ffff:ffff:ffff:ffff:ffff,US +2607:280::,2607:280:ffff:ffff:ffff:ffff:ffff:ffff,US 2607:300::,2607:300:ffff:ffff:ffff:ffff:ffff:ffff,BS +2607:380::,2607:380:ffff:ffff:ffff:ffff:ffff:ffff,US 2607:400::,2607:400:ffff:ffff:ffff:ffff:ffff:ffff,US +2607:480::,2607:480:ffff:ffff:ffff:ffff:ffff:ffff,US 2607:500::,2607:500:ffff:ffff:ffff:ffff:ffff:ffff,US +2607:580::,2607:580:ffff:ffff:ffff:ffff:ffff:ffff,US 2607:600::,2607:600:ffff:ffff:ffff:ffff:ffff:ffff,US +2607:680::,2607:680:ffff:ffff:ffff:ffff:ffff:ffff,CA 2607:700::,2607:700:ffff:ffff:ffff:ffff:ffff:ffff,US +2607:780::,2607:780:ffff:ffff:ffff:ffff:ffff:ffff,CA 2607:800::,2607:800:ffff:ffff:ffff:ffff:ffff:ffff,US 2607:900::,2607:900:ffff:ffff:ffff:ffff:ffff:ffff,US 2607:a00::,2607:a00:ffff:ffff:ffff:ffff:ffff:ffff,CA @@ -10207,7 +10003,7 @@ 2607:5d00::,2607:5d00:ffff:ffff:ffff:ffff:ffff:ffff,US 2607:5e00::,2607:5e00:ffff:ffff:ffff:ffff:ffff:ffff,CA 2607:5f00::,2607:5f00:ffff:ffff:ffff:ffff:ffff:ffff,US -2607:6000::,2607:6000:ffff:ffff:ffff:ffff:ffff:ffff,US +2607:6000::,2607:600f:ffff:ffff:ffff:ffff:ffff:ffff,US 2607:6100::,2607:6100:ffff:ffff:ffff:ffff:ffff:ffff,US 2607:6200::,2607:6200:ffff:ffff:ffff:ffff:ffff:ffff,US 2607:6300::,2607:6300:ffff:ffff:ffff:ffff:ffff:ffff,US @@ -10377,14 +10173,8 @@ 2607:f0b0::,2607:f0b0:ffff:ffff:ffff:ffff:ffff:ffff,CA 2607:f0c0::,2607:f0c0:ffff:ffff:ffff:ffff:ffff:ffff,US 2607:f0c8::,2607:f0c8:ffff:ffff:ffff:ffff:ffff:ffff,CA -2607:f0d0::,2607:f0d0:1c00:ffff:ffff:ffff:ffff:ffff,US -2607:f0d0:1c01::,2607:f0d0:1c01:7fff:ffff:ffff:ffff:ffff,MX -2607:f0d0:1c01:8000::,2607:f0d0:3700:ffff:ffff:ffff:ffff:ffff,US -2607:f0d0:3701::,2607:f0d0:3701:7fff:ffff:ffff:ffff:ffff,CA -2607:f0d0:3701:8000::,2607:f0d1:ffff:ffff:ffff:ffff:ffff:ffff,US -2607:f0d8::,2607:f0dc:5001:7fff:ffff:ffff:ffff:ffff,US -2607:f0dc:5001:8000::,2607:f0dc:5001:ffff:ffff:ffff:ffff:ffff,TW -2607:f0dc:5002::,2607:f0e0:ffff:ffff:ffff:ffff:ffff:ffff,US +2607:f0d0::,2607:f0d1:ffff:ffff:ffff:ffff:ffff:ffff,US +2607:f0d8::,2607:f0e0:ffff:ffff:ffff:ffff:ffff:ffff,US 2607:f0e8::,2607:f0e8:ffff:ffff:ffff:ffff:ffff:ffff,US 2607:f0f8::,2607:f0f8:ffff:ffff:ffff:ffff:ffff:ffff,US 2607:f100::,2607:f100:ffff:ffff:ffff:ffff:ffff:ffff,US @@ -10447,7 +10237,7 @@ 2607:f2e8::,2607:f2e8:ffff:ffff:ffff:ffff:ffff:ffff,US 2607:f2f0::,2607:f2f0:ffff:ffff:ffff:ffff:ffff:ffff,US 2607:f2f8::,2607:f2f8:ffff:ffff:ffff:ffff:ffff:ffff,US -2607:f300::,2607:f300:ffff:ffff:ffff:ffff:ffff:ffff,US +2607:f300::,2607:f300:fff:ffff:ffff:ffff:ffff:ffff,US 2607:f308::,2607:f308:ffff:ffff:ffff:ffff:ffff:ffff,US 2607:f310::,2607:f310:ffff:ffff:ffff:ffff:ffff:ffff,US 2607:f318::,2607:f318:ffff:ffff:ffff:ffff:ffff:ffff,US @@ -10573,9 +10363,7 @@ 2607:f720::,2607:f720:ffff:ffff:ffff:ffff:ffff:ffff,US 2607:f728::,2607:f728:ffff:ffff:ffff:ffff:ffff:ffff,US 2607:f738::,2607:f738:ffff:ffff:ffff:ffff:ffff:ffff,US -2607:f740::,2607:f740:8f:ffff:ffff:ffff:ffff:ffff,US -2607:f740:90::,2607:f740:90:7fff:ffff:ffff:ffff:ffff,HK -2607:f740:90:8000::,2607:f740:ffff:ffff:ffff:ffff:ffff:ffff,US +2607:f740::,2607:f740:ffff:ffff:ffff:ffff:ffff:ffff,US 2607:f748::,2607:f748:ffff:ffff:ffff:ffff:ffff:ffff,CA 2607:f750::,2607:f750:ffff:ffff:ffff:ffff:ffff:ffff,US 2607:f758::,2607:f758:ffff:ffff:ffff:ffff:ffff:ffff,US @@ -10763,7 +10551,6 @@ 2607:fd80::,2607:fd80:ffff:ffff:ffff:ffff:ffff:ffff,US 2607:fd88::,2607:fd88:ffff:ffff:ffff:ffff:ffff:ffff,US 2607:fd90::,2607:fd90:ffff:ffff:ffff:ffff:ffff:ffff,US -2607:fd98::,2607:fd98:ffff:ffff:ffff:ffff:ffff:ffff,US 2607:fda0::,2607:fda0:ffff:ffff:ffff:ffff:ffff:ffff,US 2607:fda8::,2607:fda8:ffff:ffff:ffff:ffff:ffff:ffff,US 2607:fdb0::,2607:fdb0:ffff:ffff:ffff:ffff:ffff:ffff,US @@ -10779,7 +10566,7 @@ 2607:fe00::,2607:fe00:ffff:ffff:ffff:ffff:ffff:ffff,JM 2607:fe08::,2607:fe08:ffff:ffff:ffff:ffff:ffff:ffff,US 2607:fe10::,2607:fe10:ffff:ffff:ffff:ffff:ffff:ffff,US -2607:fe18::,2607:fe18:ffff:ffff:ffff:ffff:ffff:ffff,US +2607:fe18::,2607:fe18:fff:ffff:ffff:ffff:ffff:ffff,US 2607:fe20::,2607:fe20:ffff:ffff:ffff:ffff:ffff:ffff,US 2607:fe28::,2607:fe28:ffff:ffff:ffff:ffff:ffff:ffff,US 2607:fe30::,2607:fe30:ffff:ffff:ffff:ffff:ffff:ffff,US @@ -11062,82 +10849,37 @@ 2620:0:ee0::,2620::ee0:ffff:ffff:ffff:ffff:ffff,US 2620:0:ef0::,2620::ef0:ffff:ffff:ffff:ffff:ffff,US 2620:0:f00::,2620::f7f:ffff:ffff:ffff:ffff:ffff,US -2620:0:1000::,2620::100b:ffff:ffff:ffff:ffff:ffff,US -2620:0:100c::,2620::100c:7fff:ffff:ffff:ffff:ffff,CA -2620:0:100c:8000::,2620::100c:ffff:ffff:ffff:ffff:ffff,US +2620:0:1000::,2620::100c:ffff:ffff:ffff:ffff:ffff,US 2620:0:100d::,2620::100d:ffff:ffff:ffff:ffff:ffff,CA 2620:0:100e::,2620::1010:ffff:ffff:ffff:ffff:ffff,US 2620:0:1011::,2620::1011:7fff:ffff:ffff:ffff:ffff,AR -2620:0:1011:8000::,2620::1017:7fff:ffff:ffff:ffff:ffff,US -2620:0:1017:8000::,2620::1017:ffff:ffff:ffff:ffff:ffff,CO -2620:0:1018::,2620::1019:ffff:ffff:ffff:ffff:ffff,US -2620:0:101a::,2620::101a:7fff:ffff:ffff:ffff:ffff,BR -2620:0:101a:8000::,2620::101f:ffff:ffff:ffff:ffff:ffff,US -2620:0:1020::,2620::1020:7fff:ffff:ffff:ffff:ffff,MX -2620:0:1020:8000::,2620::1024:ffff:ffff:ffff:ffff:ffff,US +2620:0:1011:8000::,2620::1024:ffff:ffff:ffff:ffff:ffff,US 2620:0:1025::,2620::1025:7fff:ffff:ffff:ffff:ffff,BR 2620:0:1025:8000::,2620::1034:ffff:ffff:ffff:ffff:ffff,US -2620:0:1035::,2620::1035:ffff:ffff:ffff:ffff:ffff,CA -2620:0:1036::,2620::103f:ffff:ffff:ffff:ffff:ffff,US +2620:0:1035::,2620::1035:7fff:ffff:ffff:ffff:ffff,CA +2620:0:1035:8000::,2620::103f:ffff:ffff:ffff:ffff:ffff,US 2620:0:1040::,2620::1040:7fff:ffff:ffff:ffff:ffff,IE 2620:0:1040:8000::,2620::1041:ffff:ffff:ffff:ffff:ffff,US -2620:0:1042::,2620::1042:ffff:ffff:ffff:ffff:ffff,GB +2620:0:1042::,2620::1042:7fff:ffff:ffff:ffff:ffff,GB +2620:0:1042:8000::,2620::1042:ffff:ffff:ffff:ffff:ffff,US 2620:0:1043::,2620::1043:7fff:ffff:ffff:ffff:ffff,SE 2620:0:1043:8000::,2620::1044:ffff:ffff:ffff:ffff:ffff,US 2620:0:1045::,2620::1045:7fff:ffff:ffff:ffff:ffff,IL -2620:0:1045:8000::,2620::1045:ffff:ffff:ffff:ffff:ffff,US -2620:0:1046::,2620::1046:7fff:ffff:ffff:ffff:ffff,DE -2620:0:1046:8000::,2620::1046:ffff:ffff:ffff:ffff:ffff,US -2620:0:1047::,2620::1047:7fff:ffff:ffff:ffff:ffff,FR -2620:0:1047:8000::,2620::1047:ffff:ffff:ffff:ffff:ffff,US -2620:0:1048::,2620::1048:7fff:ffff:ffff:ffff:ffff,IL -2620:0:1048:8000::,2620::1048:ffff:ffff:ffff:ffff:ffff,US +2620:0:1045:8000::,2620::1048:ffff:ffff:ffff:ffff:ffff,US 2620:0:1049::,2620::1049:7fff:ffff:ffff:ffff:ffff,DE 2620:0:1049:8000::,2620::1049:ffff:ffff:ffff:ffff:ffff,US 2620:0:104a::,2620::104a:7fff:ffff:ffff:ffff:ffff,AE -2620:0:104a:8000::,2620::104a:ffff:ffff:ffff:ffff:ffff,US -2620:0:104b::,2620::104b:7fff:ffff:ffff:ffff:ffff,NL -2620:0:104b:8000::,2620::104b:ffff:ffff:ffff:ffff:ffff,US -2620:0:104c::,2620::104c:7fff:ffff:ffff:ffff:ffff,CH -2620:0:104c:8000::,2620::104f:ffff:ffff:ffff:ffff:ffff,US -2620:0:1050::,2620::1050:ffff:ffff:ffff:ffff:ffff,GB +2620:0:104a:8000::,2620::104f:ffff:ffff:ffff:ffff:ffff,US +2620:0:1050::,2620::1050:7fff:ffff:ffff:ffff:ffff,GB +2620:0:1050:8000::,2620::1050:ffff:ffff:ffff:ffff:ffff,US 2620:0:1051::,2620::1051:7fff:ffff:ffff:ffff:ffff,ES 2620:0:1051:8000::,2620::1051:ffff:ffff:ffff:ffff:ffff,US 2620:0:1052::,2620::1052:7fff:ffff:ffff:ffff:ffff,IE -2620:0:1052:8000::,2620::1052:ffff:ffff:ffff:ffff:ffff,US -2620:0:1053::,2620::1053:7fff:ffff:ffff:ffff:ffff,FR -2620:0:1053:8000::,2620::1055:ffff:ffff:ffff:ffff:ffff,US -2620:0:1056::,2620::1056:7fff:ffff:ffff:ffff:ffff,FR -2620:0:1056:8000::,2620::1056:ffff:ffff:ffff:ffff:ffff,US -2620:0:1057::,2620::1057:7fff:ffff:ffff:ffff:ffff,DE -2620:0:1057:8000::,2620::1059:ffff:ffff:ffff:ffff:ffff,US -2620:0:105a::,2620::105a:ffff:ffff:ffff:ffff:ffff,UG -2620:0:105b::,2620::105e:ffff:ffff:ffff:ffff:ffff,US +2620:0:1052:8000::,2620::105e:ffff:ffff:ffff:ffff:ffff,US 2620:0:105f::,2620::105f:ffff:ffff:ffff:ffff:ffff,CH -2620:0:1060::,2620::1060:ffff:ffff:ffff:ffff:ffff,US -2620:0:1061::,2620::1061:7fff:ffff:ffff:ffff:ffff,CH -2620:0:1061:8000::,2620::1068:ffff:ffff:ffff:ffff:ffff,US -2620:0:1069::,2620::1069:7fff:ffff:ffff:ffff:ffff,PL -2620:0:1069:8000::,2620::106a:ffff:ffff:ffff:ffff:ffff,US -2620:0:106b::,2620::106b:7fff:ffff:ffff:ffff:ffff,RU -2620:0:106b:8000::,2620::106d:ffff:ffff:ffff:ffff:ffff,US -2620:0:106e::,2620::106e:7fff:ffff:ffff:ffff:ffff,ZA -2620:0:106e:8000::,2620::1072:ffff:ffff:ffff:ffff:ffff,US -2620:0:1073::,2620::1073:ffff:ffff:ffff:ffff:ffff,GB -2620:0:1074::,2620::1074:7fff:ffff:ffff:ffff:ffff,IE -2620:0:1074:8000::,2620::1076:ffff:ffff:ffff:ffff:ffff,US -2620:0:1077::,2620::1077:7fff:ffff:ffff:ffff:ffff,DE -2620:0:1077:8000::,2620::1078:ffff:ffff:ffff:ffff:ffff,US -2620:0:1079::,2620::1079:7fff:ffff:ffff:ffff:ffff,DK -2620:0:1079:8000::,2620::107a:7fff:ffff:ffff:ffff:ffff,US -2620:0:107a:8000::,2620::107a:ffff:ffff:ffff:ffff:ffff,IE -2620:0:107b::,2620::107b:ffff:ffff:ffff:ffff:ffff,US -2620:0:107c::,2620::107c:7fff:ffff:ffff:ffff:ffff,GR -2620:0:107c:8000::,2620::107e:ffff:ffff:ffff:ffff:ffff,US -2620:0:107f::,2620::107f:7fff:ffff:ffff:ffff:ffff,BE -2620:0:107f:8000::,2620::10e7:ffff:ffff:ffff:ffff:ffff,US -2620:0:10e8::,2620::10e8:7fff:ffff:ffff:ffff:ffff,AR -2620:0:10e8:8000::,2620::10ff:ffff:ffff:ffff:ffff:ffff,US +2620:0:1060::,2620::1072:ffff:ffff:ffff:ffff:ffff,US +2620:0:1073::,2620::1073:7fff:ffff:ffff:ffff:ffff,GB +2620:0:1073:8000::,2620::10ff:ffff:ffff:ffff:ffff:ffff,US 2620:0:1400::,2620::143f:ffff:ffff:ffff:ffff:ffff,US 2620:0:1500::,2620::157f:ffff:ffff:ffff:ffff:ffff,US 2620:0:1600::,2620::167f:ffff:ffff:ffff:ffff:ffff,US @@ -11161,7 +10903,7 @@ 2620:0:1c00::,2620::1cff:ffff:ffff:ffff:ffff:ffff,US 2620:0:2000::,2620::203f:ffff:ffff:ffff:ffff:ffff,US 2620:0:2210::,2620::2210:ffff:ffff:ffff:ffff:ffff,US -2620:0:2220::,2620::2220:ffff:ffff:ffff:ffff:ffff,CA +2620:0:2220::,2620::222f:ffff:ffff:ffff:ffff:ffff,CA 2620:0:2240::,2620::2240:ffff:ffff:ffff:ffff:ffff,US 2620:0:2250::,2620::2250:ffff:ffff:ffff:ffff:ffff,US 2620:0:2260::,2620::2260:ffff:ffff:ffff:ffff:ffff,US @@ -11404,7 +11146,7 @@ 2620:2f:4000::,2620:2f:4000:ffff:ffff:ffff:ffff:ffff,US 2620:2f:8000::,2620:2f:8000:ffff:ffff:ffff:ffff:ffff,US 2620:2f:c000::,2620:2f:c000:ffff:ffff:ffff:ffff:ffff,US -2620:30::,2620:30::ffff:ffff:ffff:ffff:ffff,US +2620:30::,2620:30:f:ffff:ffff:ffff:ffff:ffff,US 2620:30:4000::,2620:30:4000:ffff:ffff:ffff:ffff:ffff,US 2620:30:8000::,2620:30:8000:ffff:ffff:ffff:ffff:ffff,US 2620:30:c000::,2620:30:c00f:ffff:ffff:ffff:ffff:ffff,US @@ -11794,7 +11536,6 @@ 2620:98:8000::,2620:98:8000:ffff:ffff:ffff:ffff:ffff,US 2620:98:c000::,2620:98:c000:ffff:ffff:ffff:ffff:ffff,US 2620:99::,2620:99::ffff:ffff:ffff:ffff:ffff,US -2620:99:4000::,2620:99:4000:ffff:ffff:ffff:ffff:ffff,CA 2620:99:8000::,2620:99:8000:ffff:ffff:ffff:ffff:ffff,US 2620:99:c000::,2620:99:c000:ffff:ffff:ffff:ffff:ffff,US 2620:9a::,2620:9a::ffff:ffff:ffff:ffff:ffff,CA @@ -11920,7 +11661,7 @@ 2620:b9:4000::,2620:b9:4000:ffff:ffff:ffff:ffff:ffff,US 2620:b9:8000::,2620:b9:8000:ffff:ffff:ffff:ffff:ffff,US 2620:b9:c000::,2620:b9:c000:ffff:ffff:ffff:ffff:ffff,US -2620:ba::,2620:ba::ffff:ffff:ffff:ffff:ffff,US +2620:ba::,2620:ba:ff:ffff:ffff:ffff:ffff:ffff,US 2620:ba:4000::,2620:ba:4000:ffff:ffff:ffff:ffff:ffff,US 2620:ba:8000::,2620:ba:8000:ffff:ffff:ffff:ffff:ffff,US 2620:ba:c000::,2620:ba:c000:ffff:ffff:ffff:ffff:ffff,US @@ -12055,7 +11796,7 @@ 2620:db:c000::,2620:db:c000:ffff:ffff:ffff:ffff:ffff,US 2620:dc::,2620:dc::ffff:ffff:ffff:ffff:ffff,US 2620:dc:8::,2620:dc:8:ffff:ffff:ffff:ffff:ffff,US -2620:dc:4000::,2620:dc:4000:ffff:ffff:ffff:ffff:ffff,US +2620:dc:4000::,2620:dc:40ff:ffff:ffff:ffff:ffff:ffff,US 2620:dc:8000::,2620:dc:8000:ffff:ffff:ffff:ffff:ffff,CA 2620:dc:c000::,2620:dc:c000:ffff:ffff:ffff:ffff:ffff,US 2620:dd::,2620:dd::ffff:ffff:ffff:ffff:ffff,CA @@ -12135,28 +11876,50 @@ 2620:ef:8000::,2620:ef:8000:ffff:ffff:ffff:ffff:ffff,US 2620:ef:c000::,2620:ef:c000:ffff:ffff:ffff:ffff:ffff,US 2620:f0::,2620:f0::ffff:ffff:ffff:ffff:ffff,US -2620:f0:4000::,2620:f0:4000:ffff:ffff:ffff:ffff:ffff,US +2620:f0:4000::,2620:f0:400f:ffff:ffff:ffff:ffff:ffff,US 2620:f0:8000::,2620:f0:8000:ffff:ffff:ffff:ffff:ffff,US +2620:f0:c000::,2620:f0:c00f:ffff:ffff:ffff:ffff:ffff,US 2620:f1::,2620:f1::ffff:ffff:ffff:ffff:ffff,US +2620:f1:4000::,2620:f1:4000:ffff:ffff:ffff:ffff:ffff,CA 2620:f1:8000::,2620:f1:8000:ffff:ffff:ffff:ffff:ffff,US +2620:f1:c000::,2620:f1:c000:ffff:ffff:ffff:ffff:ffff,US 2620:f2::,2620:f2::ffff:ffff:ffff:ffff:ffff,CA +2620:f2:4000::,2620:f2:4000:ffff:ffff:ffff:ffff:ffff,US 2620:f2:8000::,2620:f2:8000:ffff:ffff:ffff:ffff:ffff,US +2620:f2:c000::,2620:f2:c000:ffff:ffff:ffff:ffff:ffff,US 2620:f3::,2620:f3::ffff:ffff:ffff:ffff:ffff,US +2620:f3:4000::,2620:f3:4000:ffff:ffff:ffff:ffff:ffff,US 2620:f3:8000::,2620:f3:8000:ffff:ffff:ffff:ffff:ffff,US +2620:f3:c000::,2620:f3:c000:ffff:ffff:ffff:ffff:ffff,US 2620:f4::,2620:f4::ffff:ffff:ffff:ffff:ffff,US +2620:f4:4000::,2620:f4:40ff:ffff:ffff:ffff:ffff:ffff,US 2620:f4:8000::,2620:f4:8000:ffff:ffff:ffff:ffff:ffff,CA +2620:f4:c000::,2620:f4:c000:ffff:ffff:ffff:ffff:ffff,US 2620:f5::,2620:f5::ffff:ffff:ffff:ffff:ffff,US +2620:f5:4000::,2620:f5:4000:ffff:ffff:ffff:ffff:ffff,US 2620:f5:8000::,2620:f5:8000:ffff:ffff:ffff:ffff:ffff,US +2620:f5:c000::,2620:f5:c000:ffff:ffff:ffff:ffff:ffff,US +2620:f6:4000::,2620:f6:4000:ffff:ffff:ffff:ffff:ffff,US 2620:f6:8000::,2620:f6:8000:ffff:ffff:ffff:ffff:ffff,US +2620:f6:c000::,2620:f6:c000:ffff:ffff:ffff:ffff:ffff,CA 2620:f7::,2620:f7::ffff:ffff:ffff:ffff:ffff,US +2620:f7:4000::,2620:f7:4000:ffff:ffff:ffff:ffff:ffff,US 2620:f7:8000::,2620:f7:8000:ffff:ffff:ffff:ffff:ffff,US +2620:f7:c000::,2620:f7:c000:ffff:ffff:ffff:ffff:ffff,US 2620:f8::,2620:f8::ffff:ffff:ffff:ffff:ffff,US +2620:f8:4000::,2620:f8:4000:ffff:ffff:ffff:ffff:ffff,US 2620:f8:8000::,2620:f8:8000:ffff:ffff:ffff:ffff:ffff,US +2620:f8:c000::,2620:f8:c000:ffff:ffff:ffff:ffff:ffff,US 2620:f9::,2620:f9:f:ffff:ffff:ffff:ffff:ffff,US +2620:f9:4000::,2620:f9:4000:ffff:ffff:ffff:ffff:ffff,US 2620:f9:8000::,2620:f9:8000:ffff:ffff:ffff:ffff:ffff,US +2620:f9:c000::,2620:f9:c000:ffff:ffff:ffff:ffff:ffff,US 2620:fa::,2620:fa::ffff:ffff:ffff:ffff:ffff,US +2620:fa:4000::,2620:fa:4000:ffff:ffff:ffff:ffff:ffff,US 2620:fa:8000::,2620:fa:8000:ffff:ffff:ffff:ffff:ffff,CA +2620:fa:c000::,2620:fa:c000:ffff:ffff:ffff:ffff:ffff,US 2620:fb::,2620:fb::ffff:ffff:ffff:ffff:ffff,US +2620:fb:4000::,2620:fb:4000:ffff:ffff:ffff:ffff:ffff,US 2620:fb:8000::,2620:fb:8000:ffff:ffff:ffff:ffff:ffff,US 2620:fc::,2620:fc::ffff:ffff:ffff:ffff:ffff,CA 2620:fc:8000::,2620:fc:8000:ffff:ffff:ffff:ffff:ffff,US @@ -12380,9 +12143,13 @@ 2620:10d:9000::,2620:10d:900f:ffff:ffff:ffff:ffff:ffff,US 2620:10d:a000::,2620:10d:a0ff:ffff:ffff:ffff:ffff:ffff,US 2620:10d:b000::,2620:10d:b00f:ffff:ffff:ffff:ffff:ffff,US -2620:10d:c000::,2620:10d:c0f0:ffff:ffff:ffff:ffff:ffff,US -2620:10d:c0f1::,2620:10d:c0f1:7fff:ffff:ffff:ffff:ffff,KR -2620:10d:c0f1:8000::,2620:10d:c0ff:ffff:ffff:ffff:ffff:ffff,US +2620:10d:c000::,2620:10d:c091:ffff:ffff:ffff:ffff:ffff,US +2620:10d:c092::,2620:10d:c092:7fff:ffff:ffff:ffff:ffff,GB +2620:10d:c092:8000::,2620:10d:c0c0:ffff:ffff:ffff:ffff:ffff,US +2620:10d:c0c1::,2620:10d:c0c1:7fff:ffff:ffff:ffff:ffff,IE +2620:10d:c0c1:8000::,2620:10d:c0e0:ffff:ffff:ffff:ffff:ffff,US +2620:10d:c0e1::,2620:10d:c0e1:7fff:ffff:ffff:ffff:ffff,AU +2620:10d:c0e1:8000::,2620:10d:c0ff:ffff:ffff:ffff:ffff:ffff,US 2620:10d:d000::,2620:10d:d00f:ffff:ffff:ffff:ffff:ffff,CA 2620:10d:e000::,2620:10d:e00f:ffff:ffff:ffff:ffff:ffff,CA 2620:10d:f000::,2620:10d:f00f:ffff:ffff:ffff:ffff:ffff,US @@ -12470,9 +12237,7 @@ 2620:113:5000::,2620:113:500f:ffff:ffff:ffff:ffff:ffff,US 2620:113:6000::,2620:113:600f:ffff:ffff:ffff:ffff:ffff,US 2620:113:7000::,2620:113:700f:ffff:ffff:ffff:ffff:ffff,US -2620:113:8000::,2620:113:80bf:ffff:ffff:ffff:ffff:ffff,US -2620:113:80c0::,2620:113:80c0:7fff:ffff:ffff:ffff:ffff,DE -2620:113:80c0:8000::,2620:113:80ff:ffff:ffff:ffff:ffff:ffff,US +2620:113:8000::,2620:113:80ff:ffff:ffff:ffff:ffff:ffff,US 2620:113:9000::,2620:113:900f:ffff:ffff:ffff:ffff:ffff,US 2620:113:a000::,2620:113:a00f:ffff:ffff:ffff:ffff:ffff,US 2620:113:b000::,2620:113:b00f:ffff:ffff:ffff:ffff:ffff,US @@ -12506,7 +12271,6 @@ 2620:115:8000::,2620:115:800f:ffff:ffff:ffff:ffff:ffff,US 2620:115:9000::,2620:115:900f:ffff:ffff:ffff:ffff:ffff,US 2620:115:a000::,2620:115:a00f:ffff:ffff:ffff:ffff:ffff,US -2620:115:a096::,2620:115:a096:7fff:ffff:ffff:ffff:ffff,US 2620:115:b000::,2620:115:b00f:ffff:ffff:ffff:ffff:ffff,US 2620:115:c000::,2620:115:c00f:ffff:ffff:ffff:ffff:ffff,US 2620:115:d000::,2620:115:d0ff:ffff:ffff:ffff:ffff:ffff,US @@ -12750,6 +12514,19 @@ 2620:124:a000::,2620:124:a00f:ffff:ffff:ffff:ffff:ffff,US 2620:124:b000::,2620:124:b0ff:ffff:ffff:ffff:ffff:ffff,CA 2620:124:c000::,2620:124:c00f:ffff:ffff:ffff:ffff:ffff,US +2620:124:d000::,2620:124:d0ff:ffff:ffff:ffff:ffff:ffff,US +2620:124:e000::,2620:124:e0ff:ffff:ffff:ffff:ffff:ffff,US +2620:124:f000::,2620:124:f00f:ffff:ffff:ffff:ffff:ffff,US +2620:125::,2620:125:ff:ffff:ffff:ffff:ffff:ffff,US +2620:125:1000::,2620:125:100f:ffff:ffff:ffff:ffff:ffff,US +2620:125:2000::,2620:125:200f:ffff:ffff:ffff:ffff:ffff,US +2620:125:3000::,2620:125:30ff:ffff:ffff:ffff:ffff:ffff,US +2620:125:4000::,2620:125:400f:ffff:ffff:ffff:ffff:ffff,US +2620:125:5000::,2620:125:500f:ffff:ffff:ffff:ffff:ffff,CA +2620:125:6000::,2620:125:600f:ffff:ffff:ffff:ffff:ffff,US +2620:125:7000::,2620:125:70ff:ffff:ffff:ffff:ffff:ffff,US +2620:125:8000::,2620:125:800f:ffff:ffff:ffff:ffff:ffff,US +2620:125:9000::,2620:125:90ff:ffff:ffff:ffff:ffff:ffff,US 2620:140::,2620:140:3ff:ffff:ffff:ffff:ffff:ffff,US 2620:141::,2620:141:fff:ffff:ffff:ffff:ffff:ffff,US 2620:143::,2620:143:7ff:ffff:ffff:ffff:ffff:ffff,US @@ -12776,12 +12553,9 @@ 2620:159::,2620:159:fff:ffff:ffff:ffff:ffff:ffff,US 2620:15a::,2620:15a:fff:ffff:ffff:ffff:ffff:ffff,US 2620:15b::,2620:15b:fff:ffff:ffff:ffff:ffff:ffff,US -2620:15c::,2620:15c::7fff:ffff:ffff:ffff:ffff,CA -2620:15c:0:8000::,2620:15c:4:ffff:ffff:ffff:ffff:ffff,US +2620:15c::,2620:15c:4:ffff:ffff:ffff:ffff:ffff,US 2620:15c:5::,2620:15c:5:ffff:ffff:ffff:ffff:ffff,BR -2620:15c:6::,2620:15c:d:ffff:ffff:ffff:ffff:ffff,US -2620:15c:e::,2620:15c:e:7fff:ffff:ffff:ffff:ffff,MX -2620:15c:e:8000::,2620:15c:fff:ffff:ffff:ffff:ffff:ffff,US +2620:15c:6::,2620:15c:fff:ffff:ffff:ffff:ffff:ffff,US 2620:15d::,2620:15e:fff:ffff:ffff:ffff:ffff:ffff,US 2620:15f::,2620:15f:fff:ffff:ffff:ffff:ffff:ffff,US 2620:160::,2620:160:ffff:ffff:ffff:ffff:ffff:ffff,US @@ -12815,7 +12589,8 @@ 2620:1c0::,2620:1c0:ffff:ffff:ffff:ffff:ffff:ffff,US 2620:1d0::,2620:1d1:ffff:ffff:ffff:ffff:ffff:ffff,US 2620:1d2::,2620:1d2:ffff:ffff:ffff:ffff:ffff:ffff,CA -2620:1d3::,2620:1d3:ffff:ffff:ffff:ffff:ffff:ffff,US +2620:1d3::,2620:1d5:fff:ffff:ffff:ffff:ffff:ffff,US +2620:1d6::,2620:1d6:fff:ffff:ffff:ffff:ffff:ffff,US 2620:1e0::,2620:1e1:fff:ffff:ffff:ffff:ffff:ffff,US 2620:1e2::,2620:1e2:fff:ffff:ffff:ffff:ffff:ffff,US 2620:1e3::,2620:1e3:fff:ffff:ffff:ffff:ffff:ffff,US @@ -12828,7 +12603,6 @@ 2620:1ea::,2620:1ea:fff:ffff:ffff:ffff:ffff:ffff,US 2620:1eb::,2620:1eb:fff:ffff:ffff:ffff:ffff:ffff,US 2620:1ec::,2620:1ec:fff:ffff:ffff:ffff:ffff:ffff,US -2620:1ed::,2620:1ed:fff:ffff:ffff:ffff:ffff:ffff,CA 2620:1ee::,2620:1ee:fff:ffff:ffff:ffff:ffff:ffff,US 2620:1ef::,2620:1ef:fff:ffff:ffff:ffff:ffff:ffff,US 2620:1f0::,2620:1f1:fff:ffff:ffff:ffff:ffff:ffff,US @@ -13100,7 +12874,6 @@ 2801:0:390::,2801::390:ffff:ffff:ffff:ffff:ffff,CO 2801:0:3b0::,2801::3b0:ffff:ffff:ffff:ffff:ffff,CO 2801:0:3c0::,2801::3c0:ffff:ffff:ffff:ffff:ffff,CO -2801:0:3d0::,2801::3d0:ffff:ffff:ffff:ffff:ffff,CO 2801:0:3e0::,2801::3e0:ffff:ffff:ffff:ffff:ffff,AR 2801:0:3f0::,2801::3f0:ffff:ffff:ffff:ffff:ffff,AR 2801:0:400::,2801::400:ffff:ffff:ffff:ffff:ffff,CL @@ -13123,6 +12896,7 @@ 2801:10:4000::,2801:10:4000:ffff:ffff:ffff:ffff:ffff,AR 2801:10:6000::,2801:10:6000:ffff:ffff:ffff:ffff:ffff,HN 2801:10:8000::,2801:10:8000:ffff:ffff:ffff:ffff:ffff,AR +2801:10:9000::,2801:10:9000:ffff:ffff:ffff:ffff:ffff,PY 2801:10:a000::,2801:10:a000:ffff:ffff:ffff:ffff:ffff,AR 2801:10:c000::,2801:10:c000:ffff:ffff:ffff:ffff:ffff,CO 2801:10:e000::,2801:10:e000:ffff:ffff:ffff:ffff:ffff,AR @@ -13191,7 +12965,6 @@ 2801:18::,2801:18::ffff:ffff:ffff:ffff:ffff,CR 2801:18:1000::,2801:18:1000:ffff:ffff:ffff:ffff:ffff,PA 2801:18:2000::,2801:18:2000:ffff:ffff:ffff:ffff:ffff,CO -2801:18:4000::,2801:18:4000:ffff:ffff:ffff:ffff:ffff,CO 2801:18:6000::,2801:18:6000:ffff:ffff:ffff:ffff:ffff,AR 2801:18:8000::,2801:18:8000:ffff:ffff:ffff:ffff:ffff,AR 2801:18:a000::,2801:18:a000:ffff:ffff:ffff:ffff:ffff,BO @@ -13251,6 +13024,7 @@ 2801:1e:a000::,2801:1e:a000:ffff:ffff:ffff:ffff:ffff,AR 2801:1e:e000::,2801:1e:e000:ffff:ffff:ffff:ffff:ffff,SV 2801:1f::,2801:1f::ffff:ffff:ffff:ffff:ffff,AR +2801:1f:1000::,2801:1f:1000:ffff:ffff:ffff:ffff:ffff,HN 2801:1f:2000::,2801:1f:2000:ffff:ffff:ffff:ffff:ffff,CR 2801:1f:4000::,2801:1f:4000:ffff:ffff:ffff:ffff:ffff,CR 2801:1f:6000::,2801:1f:6000:ffff:ffff:ffff:ffff:ffff,AR @@ -13540,6 +13314,11 @@ 2801:80:1660::,2801:80:1660:ffff:ffff:ffff:ffff:ffff,BR 2801:80:1670::,2801:80:1670:ffff:ffff:ffff:ffff:ffff,BR 2801:80:1680::,2801:80:1680:ffff:ffff:ffff:ffff:ffff,BR +2801:80:1690::,2801:80:1690:ffff:ffff:ffff:ffff:ffff,BR +2801:80:16a0::,2801:80:16a0:ffff:ffff:ffff:ffff:ffff,BR +2801:80:16b0::,2801:80:16b0:ffff:ffff:ffff:ffff:ffff,BR +2801:80:16c0::,2801:80:16c0:ffff:ffff:ffff:ffff:ffff,BR +2801:80:1700::,2801:80:17ff:ffff:ffff:ffff:ffff:ffff,BR 2801:82::,2801:82:ffff:ffff:ffff:ffff:ffff:ffff,BR 2801:84::,2801:84:ffff:ffff:ffff:ffff:ffff:ffff,BR 2801:86::,2801:86:ffff:ffff:ffff:ffff:ffff:ffff,BR @@ -13619,7 +13398,8 @@ 2801:1f0::,2801:1f0:ffff:ffff:ffff:ffff:ffff:ffff,AR 2802::,2802:3:ffff:ffff:ffff:ffff:ffff:ffff,CO 2803::,2803::ffff:ffff:ffff:ffff:ffff:ffff,AR -2803:80::,2803:80:ffff:ffff:ffff:ffff:ffff:ffff,CL +2803:80::,2803:80::ffff:ffff:ffff:ffff,BR +2803:80:0:1::,2803:80:ffff:ffff:ffff:ffff:ffff:ffff,CL 2803:b4::,2803:b4:ffff:ffff:ffff:ffff:ffff:ffff,BZ 2803:100::,2803:100:ffff:ffff:ffff:ffff:ffff:ffff,HN 2803:140::,2803:140:ffff:ffff:ffff:ffff:ffff:ffff,AR @@ -13655,19 +13435,16 @@ 2803:c40::,2803:c40:ffff:ffff:ffff:ffff:ffff:ffff,CO 2803:c80::,2803:c80:ffff:ffff:ffff:ffff:ffff:ffff,PY 2803:d00::,2803:d00:ffff:ffff:ffff:ffff:ffff:ffff,GY -2803:d80::,2803:d8f:ffff:ffff:ffff:ffff:ffff:ffff,CO +2803:d40::,2803:d40:ffff:ffff:ffff:ffff:ffff:ffff,PE +2803:d80::,2803:d87:ffff:ffff:ffff:ffff:ffff:ffff,CO 2803:e00::,2803:e00:ffff:ffff:ffff:ffff:ffff:ffff,CL 2803:e40::,2803:e40:ffff:ffff:ffff:ffff:ffff:ffff,AR 2803:e80::,2803:e80:ffff:ffff:ffff:ffff:ffff:ffff,CO 2803:f00::,2803:f00:48a:ffff:ffff:ffff:ffff:ffff,PE 2803:f00:48b::,2803:f00:48e:ffff:ffff:ffff:ffff:ffff,CO -2803:f00:48f::,2803:f00:4a6:ffff:ffff:ffff:ffff:ffff,PE -2803:f00:4a7::,2803:f00:4a9:bfff:ffff:ffff:ffff:ffff,CL -2803:f00:4a9:c000::,2803:f00:4a9:ffff:ffff:ffff:ffff:ffff,PE -2803:f00:4aa::,2803:f00:4aa:ffff:ffff:ffff:ffff:ffff,CL -2803:f00:4ab::,2803:f00:68d:7fff:ffff:ffff:ffff:ffff,PE -2803:f00:68d:8000::,2803:f00:68d:ffff:ffff:ffff:ffff:ffff,CO -2803:f00:68e::,2803:f00:ffff:ffff:ffff:ffff:ffff:ffff,PE +2803:f00:48f::,2803:f00:4a9:ffff:ffff:ffff:ffff:ffff,PE +2803:f00:4aa::,2803:f00:4aa:7fff:ffff:ffff:ffff:ffff,CL +2803:f00:4aa:8000::,2803:f00:ffff:ffff:ffff:ffff:ffff:ffff,PE 2803:f80::,2803:f80:ffff:ffff:ffff:ffff:ffff:ffff,AR 2803:1000::,2803:1000:ffff:ffff:ffff:ffff:ffff:ffff,SV 2803:1040::,2803:1040:ffff:ffff:ffff:ffff:ffff:ffff,NI @@ -13683,6 +13460,7 @@ 2803:1400::,2803:1400:ffff:ffff:ffff:ffff:ffff:ffff,DO 2803:1440::,2803:1440:ffff:ffff:ffff:ffff:ffff:ffff,GT 2803:1500::,2803:1500:ffff:ffff:ffff:ffff:ffff:ffff,TT +2803:1540::,2803:1540:ffff:ffff:ffff:ffff:ffff:ffff,PE 2803:1580::,2803:1580:ffff:ffff:ffff:ffff:ffff:ffff,CO 2803:1600::,2803:1600:ffff:ffff:ffff:ffff:ffff:ffff,BQ 2803:1640::,2803:1640:ffff:ffff:ffff:ffff:ffff:ffff,NI @@ -13703,6 +13481,7 @@ 2803:1c40::,2803:1c40:ffff:ffff:ffff:ffff:ffff:ffff,NI 2803:1c80::,2803:1c80:ffff:ffff:ffff:ffff:ffff:ffff,AR 2803:1d00::,2803:1d00:ffff:ffff:ffff:ffff:ffff:ffff,AR +2803:1d40::,2803:1d40:ffff:ffff:ffff:ffff:ffff:ffff,PE 2803:1d80::,2803:1d80:ffff:ffff:ffff:ffff:ffff:ffff,AR 2803:1e00::,2803:1e00:ffff:ffff:ffff:ffff:ffff:ffff,NI 2803:1e40::,2803:1e40:ffff:ffff:ffff:ffff:ffff:ffff,AR @@ -13724,6 +13503,7 @@ 2803:2440::,2803:2440:ffff:ffff:ffff:ffff:ffff:ffff,AR 2803:2480::,2803:2480:ffff:ffff:ffff:ffff:ffff:ffff,PE 2803:2500::,2803:2500:ffff:ffff:ffff:ffff:ffff:ffff,PE +2803:2540::,2803:2540:ffff:ffff:ffff:ffff:ffff:ffff,EC 2803:2580::,2803:2580:ffff:ffff:ffff:ffff:ffff:ffff,HN 2803:2600::,2803:2600:ffff:ffff:ffff:ffff:ffff:ffff,AR 2803:2640::,2803:2640:ffff:ffff:ffff:ffff:ffff:ffff,CO @@ -13745,6 +13525,7 @@ 2803:2c40::,2803:2c40:ffff:ffff:ffff:ffff:ffff:ffff,VE 2803:2c80::,2803:2c80:ffff:ffff:ffff:ffff:ffff:ffff,VE 2803:2d00::,2803:2d00:ffff:ffff:ffff:ffff:ffff:ffff,AR +2803:2d40::,2803:2d40:ffff:ffff:ffff:ffff:ffff:ffff,CL 2803:2d80::,2803:2d80:ffff:ffff:ffff:ffff:ffff:ffff,PA 2803:2e00::,2803:2e00:ffff:ffff:ffff:ffff:ffff:ffff,EC 2803:2e40::,2803:2e40:ffff:ffff:ffff:ffff:ffff:ffff,PA @@ -13765,6 +13546,7 @@ 2803:3440::,2803:3440:ffff:ffff:ffff:ffff:ffff:ffff,CL 2803:3480::,2803:3480:ffff:ffff:ffff:ffff:ffff:ffff,AR 2803:3500::,2803:3500:ffff:ffff:ffff:ffff:ffff:ffff,AR +2803:3540::,2803:3540:ffff:ffff:ffff:ffff:ffff:ffff,AR 2803:3580::,2803:3580:ffff:ffff:ffff:ffff:ffff:ffff,PE 2803:3600::,2803:3600:ffff:ffff:ffff:ffff:ffff:ffff,CR 2803:3640::,2803:3640:ffff:ffff:ffff:ffff:ffff:ffff,DO @@ -13828,6 +13610,7 @@ 2803:4c40::,2803:4c40:ffff:ffff:ffff:ffff:ffff:ffff,AR 2803:4c80::,2803:4c80:ffff:ffff:ffff:ffff:ffff:ffff,AR 2803:4d00::,2803:4d00:ffff:ffff:ffff:ffff:ffff:ffff,CL +2803:4d40::,2803:4d40:ffff:ffff:ffff:ffff:ffff:ffff,AR 2803:4d80::,2803:4d80:ffff:ffff:ffff:ffff:ffff:ffff,CW 2803:4e00::,2803:4e00:ffff:ffff:ffff:ffff:ffff:ffff,UY 2803:4e40::,2803:4e40:ffff:ffff:ffff:ffff:ffff:ffff,AR @@ -13849,6 +13632,7 @@ 2803:5440::,2803:5440:ffff:ffff:ffff:ffff:ffff:ffff,AR 2803:5480::,2803:5480:ffff:ffff:ffff:ffff:ffff:ffff,AR 2803:5500::,2803:5500:ffff:ffff:ffff:ffff:ffff:ffff,AR +2803:5540::,2803:5540:ffff:ffff:ffff:ffff:ffff:ffff,AR 2803:5580::,2803:5580:ffff:ffff:ffff:ffff:ffff:ffff,CR 2803:5600::,2803:5600:ffff:ffff:ffff:ffff:ffff:ffff,HN 2803:5640::,2803:5640:ffff:ffff:ffff:ffff:ffff:ffff,CO @@ -13889,6 +13673,7 @@ 2803:6440::,2803:6440:ffff:ffff:ffff:ffff:ffff:ffff,AR 2803:6480::,2803:6480:ffff:ffff:ffff:ffff:ffff:ffff,BZ 2803:6500::,2803:6500:ffff:ffff:ffff:ffff:ffff:ffff,PE +2803:6540::,2803:6540:ffff:ffff:ffff:ffff:ffff:ffff,AR 2803:6580::,2803:6580:ffff:ffff:ffff:ffff:ffff:ffff,CL 2803:6600::,2803:6600:ffff:ffff:ffff:ffff:ffff:ffff,AR 2803:6640::,2803:6640:ffff:ffff:ffff:ffff:ffff:ffff,DO @@ -13910,6 +13695,7 @@ 2803:6c40::,2803:6c40:ffff:ffff:ffff:ffff:ffff:ffff,AR 2803:6c80::,2803:6c80:ffff:ffff:ffff:ffff:ffff:ffff,AR 2803:6d00::,2803:6d00:ffff:ffff:ffff:ffff:ffff:ffff,AR +2803:6d40::,2803:6d40:ffff:ffff:ffff:ffff:ffff:ffff,AR 2803:6d80::,2803:6d80:ffff:ffff:ffff:ffff:ffff:ffff,CL 2803:6e00::,2803:6e00:ffff:ffff:ffff:ffff:ffff:ffff,SR 2803:6e40::,2803:6e40:ffff:ffff:ffff:ffff:ffff:ffff,AR @@ -13931,6 +13717,7 @@ 2803:7440::,2803:7440:ffff:ffff:ffff:ffff:ffff:ffff,AR 2803:7480::,2803:7480:ffff:ffff:ffff:ffff:ffff:ffff,AR 2803:7500::,2803:7500:ffff:ffff:ffff:ffff:ffff:ffff,CL +2803:7540::,2803:7540:ffff:ffff:ffff:ffff:ffff:ffff,AR 2803:7580::,2803:7580:ffff:ffff:ffff:ffff:ffff:ffff,AR 2803:7600::,2803:7600:ffff:ffff:ffff:ffff:ffff:ffff,AR 2803:7640::,2803:7640:ffff:ffff:ffff:ffff:ffff:ffff,CO @@ -13994,6 +13781,7 @@ 2803:8c40::,2803:8c40:ffff:ffff:ffff:ffff:ffff:ffff,AR 2803:8c80::,2803:8c80:ffff:ffff:ffff:ffff:ffff:ffff,PA 2803:8d00::,2803:8d00:ffff:ffff:ffff:ffff:ffff:ffff,AR +2803:8d43::,2803:8d43:ffff:ffff:ffff:ffff:ffff:ffff,HN 2803:8d80::,2803:8d80:ffff:ffff:ffff:ffff:ffff:ffff,UY 2803:8e00::,2803:8e00:ffff:ffff:ffff:ffff:ffff:ffff,CL 2803:8e40::,2803:8e40:ffff:ffff:ffff:ffff:ffff:ffff,CL @@ -14015,6 +13803,7 @@ 2803:9440::,2803:9440:ffff:ffff:ffff:ffff:ffff:ffff,AR 2803:9480::,2803:9480:ffff:ffff:ffff:ffff:ffff:ffff,AR 2803:9500::,2803:9500:ffff:ffff:ffff:ffff:ffff:ffff,AR +2803:9540::,2803:9540:ffff:ffff:ffff:ffff:ffff:ffff,PE 2803:9580::,2803:9580:ffff:ffff:ffff:ffff:ffff:ffff,AR 2803:9600::,2803:9600:ffff:ffff:ffff:ffff:ffff:ffff,CW 2803:9640::,2803:9640:ffff:ffff:ffff:ffff:ffff:ffff,DO @@ -14036,6 +13825,7 @@ 2803:9c40::,2803:9c40:ffff:ffff:ffff:ffff:ffff:ffff,AR 2803:9c80::,2803:9c80:ffff:ffff:ffff:ffff:ffff:ffff,AR 2803:9d00::,2803:9d00:ffff:ffff:ffff:ffff:ffff:ffff,SV +2803:9d40::,2803:9d40:ffff:ffff:ffff:ffff:ffff:ffff,HN 2803:9d80::,2803:9d80:ffff:ffff:ffff:ffff:ffff:ffff,SV 2803:9e00::,2803:9e00:ffff:ffff:ffff:ffff:ffff:ffff,AR 2803:9e40::,2803:9e40:ffff:ffff:ffff:ffff:ffff:ffff,PA @@ -14056,6 +13846,7 @@ 2803:a440::,2803:a440:ffff:ffff:ffff:ffff:ffff:ffff,AR 2803:a480::,2803:a480:ffff:ffff:ffff:ffff:ffff:ffff,AR 2803:a500::,2803:a500:ffff:ffff:ffff:ffff:ffff:ffff,AR +2803:a540::,2803:a540:ffff:ffff:ffff:ffff:ffff:ffff,AR 2803:a580::,2803:a580:ffff:ffff:ffff:ffff:ffff:ffff,HT 2803:a600::,2803:a600:ffff:ffff:ffff:ffff:ffff:ffff,AR 2803:a640::,2803:a640:ffff:ffff:ffff:ffff:ffff:ffff,DO @@ -14077,6 +13868,7 @@ 2803:ac40::,2803:ac40:ffff:ffff:ffff:ffff:ffff:ffff,PA 2803:ac80::,2803:ac80:ffff:ffff:ffff:ffff:ffff:ffff,CO 2803:ad00::,2803:ad00:ffff:ffff:ffff:ffff:ffff:ffff,AR +2803:ad40::,2803:ad40:ffff:ffff:ffff:ffff:ffff:ffff,CR 2803:ad80::,2803:ad80:ffff:ffff:ffff:ffff:ffff:ffff,PA 2803:ae00::,2803:ae00:ffff:ffff:ffff:ffff:ffff:ffff,AR 2803:ae40::,2803:ae40:ffff:ffff:ffff:ffff:ffff:ffff,PA @@ -14097,6 +13889,7 @@ 2803:b440::,2803:b440:ffff:ffff:ffff:ffff:ffff:ffff,CR 2803:b480::,2803:b480:ffff:ffff:ffff:ffff:ffff:ffff,CL 2803:b500::,2803:b500:ffff:ffff:ffff:ffff:ffff:ffff,VE +2803:b540::,2803:b540:ffff:ffff:ffff:ffff:ffff:ffff,BO 2803:b580::,2803:b580:ffff:ffff:ffff:ffff:ffff:ffff,CL 2803:b600::,2803:b600:ffff:ffff:ffff:ffff:ffff:ffff,AR 2803:b640::,2803:b640:ffff:ffff:ffff:ffff:ffff:ffff,AW @@ -14138,6 +13931,7 @@ 2803:c440::,2803:c440:ffff:ffff:ffff:ffff:ffff:ffff,AR 2803:c480::,2803:c480:ffff:ffff:ffff:ffff:ffff:ffff,AR 2803:c500::,2803:c500:ffff:ffff:ffff:ffff:ffff:ffff,AR +2803:c540::,2803:c540:ffff:ffff:ffff:ffff:ffff:ffff,GT 2803:c580::,2803:c580:ffff:ffff:ffff:ffff:ffff:ffff,AR 2803:c600::,2803:c600:ffff:ffff:ffff:ffff:ffff:ffff,CL 2803:c640::,2803:c640:ffff:ffff:ffff:ffff:ffff:ffff,AR @@ -14159,6 +13953,7 @@ 2803:cc40::,2803:cc40:ffff:ffff:ffff:ffff:ffff:ffff,AR 2803:cc80::,2803:cc80:ffff:ffff:ffff:ffff:ffff:ffff,AR 2803:cd00::,2803:cd00:ffff:ffff:ffff:ffff:ffff:ffff,AR +2803:cd40::,2803:cd40:ffff:ffff:ffff:ffff:ffff:ffff,AR 2803:cd80::,2803:cd80:ffff:ffff:ffff:ffff:ffff:ffff,TT 2803:ce00::,2803:ce00:ffff:ffff:ffff:ffff:ffff:ffff,HN 2803:ce40::,2803:ce40:ffff:ffff:ffff:ffff:ffff:ffff,AR @@ -14181,6 +13976,7 @@ 2803:d440::,2803:d440:ffff:ffff:ffff:ffff:ffff:ffff,VE 2803:d480::,2803:d480:ffff:ffff:ffff:ffff:ffff:ffff,VE 2803:d500::,2803:d500:ffff:ffff:ffff:ffff:ffff:ffff,BZ +2803:d540::,2803:d540:ffff:ffff:ffff:ffff:ffff:ffff,VE 2803:d580::,2803:d580:ffff:ffff:ffff:ffff:ffff:ffff,CL 2803:d600::,2803:d600:ffff:ffff:ffff:ffff:ffff:ffff,UY 2803:d640::,2803:d640:ffff:ffff:ffff:ffff:ffff:ffff,SV @@ -14223,6 +14019,7 @@ 2803:e440::,2803:e440:ffff:ffff:ffff:ffff:ffff:ffff,AR 2803:e480::,2803:e480:ffff:ffff:ffff:ffff:ffff:ffff,AR 2803:e500::,2803:e500:ffff:ffff:ffff:ffff:ffff:ffff,PE +2803:e540::,2803:e540:ffff:ffff:ffff:ffff:ffff:ffff,AR 2803:e580::,2803:e580:ffff:ffff:ffff:ffff:ffff:ffff,CO 2803:e600::,2803:e600:ffff:ffff:ffff:ffff:ffff:ffff,PA 2803:e640::,2803:e640:ffff:ffff:ffff:ffff:ffff:ffff,CL @@ -14234,7 +14031,6 @@ 2803:e880::,2803:e880:ffff:ffff:ffff:ffff:ffff:ffff,GT 2803:e900::,2803:e900:ffff:ffff:ffff:ffff:ffff:ffff,AR 2803:e940::,2803:e940:ffff:ffff:ffff:ffff:ffff:ffff,AR -2803:e980::,2803:e980:ffff:ffff:ffff:ffff:ffff:ffff,AR 2803:ea00::,2803:ea00:ffff:ffff:ffff:ffff:ffff:ffff,AR 2803:ea40::,2803:ea40:ffff:ffff:ffff:ffff:ffff:ffff,AR 2803:ea80::,2803:ea80:ffff:ffff:ffff:ffff:ffff:ffff,AR @@ -14244,6 +14040,7 @@ 2803:ec40::,2803:ec40:ffff:ffff:ffff:ffff:ffff:ffff,EC 2803:ec80::,2803:ec80:ffff:ffff:ffff:ffff:ffff:ffff,AR 2803:ed00::,2803:ed00:ffff:ffff:ffff:ffff:ffff:ffff,PE +2803:ed40::,2803:ed40:ffff:ffff:ffff:ffff:ffff:ffff,PA 2803:ed80::,2803:ed80:ffff:ffff:ffff:ffff:ffff:ffff,CL 2803:ee00::,2803:ee00:ffff:ffff:ffff:ffff:ffff:ffff,AR 2803:ee40::,2803:ee40:ffff:ffff:ffff:ffff:ffff:ffff,CR @@ -14265,6 +14062,7 @@ 2803:f440::,2803:f440:ffff:ffff:ffff:ffff:ffff:ffff,PY 2803:f480::,2803:f480:ffff:ffff:ffff:ffff:ffff:ffff,CO 2803:f500::,2803:f500:ffff:ffff:ffff:ffff:ffff:ffff,CW +2803:f540::,2803:f540:ffff:ffff:ffff:ffff:ffff:ffff,PE 2803:f580::,2803:f580:ffff:ffff:ffff:ffff:ffff:ffff,AR 2803:f600::,2803:f600:ffff:ffff:ffff:ffff:ffff:ffff,CR 2803:f640::,2803:f640:ffff:ffff:ffff:ffff:ffff:ffff,BQ @@ -14982,7 +14780,6 @@ 2804:b68::,2804:b68:ffff:ffff:ffff:ffff:ffff:ffff,BR 2804:b6c::,2804:b6c:ffff:ffff:ffff:ffff:ffff:ffff,BR 2804:b70::,2804:b70:ffff:ffff:ffff:ffff:ffff:ffff,BR -2804:b74::,2804:b74:ffff:ffff:ffff:ffff:ffff:ffff,BR 2804:b78::,2804:b78:ffff:ffff:ffff:ffff:ffff:ffff,BR 2804:b7c::,2804:b7c:ffff:ffff:ffff:ffff:ffff:ffff,BR 2804:b80::,2804:b80:ffff:ffff:ffff:ffff:ffff:ffff,BR @@ -15095,9 +14892,7 @@ 2804:d34::,2804:d34:ffff:ffff:ffff:ffff:ffff:ffff,BR 2804:d38::,2804:d38:ffff:ffff:ffff:ffff:ffff:ffff,BR 2804:d3c::,2804:d3c:ffff:ffff:ffff:ffff:ffff:ffff,BR -2804:d40::,2804:d41:514:7fff:ffff:ffff:ffff:ffff,BR -2804:d41:514:8000::,2804:d41:514:ffff:ffff:ffff:ffff:ffff,US -2804:d41:515::,2804:d60:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:d40::,2804:d60:ffff:ffff:ffff:ffff:ffff:ffff,BR 2804:d64::,2804:d64:ffff:ffff:ffff:ffff:ffff:ffff,BR 2804:d68::,2804:d68:ffff:ffff:ffff:ffff:ffff:ffff,BR 2804:d6c::,2804:d6c:ffff:ffff:ffff:ffff:ffff:ffff,BR @@ -15223,7 +15018,6 @@ 2804:f50::,2804:f50:ffff:ffff:ffff:ffff:ffff:ffff,BR 2804:f54::,2804:f54:ffff:ffff:ffff:ffff:ffff:ffff,BR 2804:f58::,2804:f58:ffff:ffff:ffff:ffff:ffff:ffff,BR -2804:f5c::,2804:f5c:ffff:ffff:ffff:ffff:ffff:ffff,BR 2804:f60::,2804:f60:ffff:ffff:ffff:ffff:ffff:ffff,BR 2804:f64::,2804:f64:ffff:ffff:ffff:ffff:ffff:ffff,BR 2804:f68::,2804:f68:ffff:ffff:ffff:ffff:ffff:ffff,BR @@ -15316,7 +15110,6 @@ 2804:10c4::,2804:10c4:ffff:ffff:ffff:ffff:ffff:ffff,BR 2804:10c8::,2804:10c8:ffff:ffff:ffff:ffff:ffff:ffff,BR 2804:10cc::,2804:10cc:ffff:ffff:ffff:ffff:ffff:ffff,BR -2804:10d0::,2804:10d0:ffff:ffff:ffff:ffff:ffff:ffff,BR 2804:10d4::,2804:10d4:ffff:ffff:ffff:ffff:ffff:ffff,BR 2804:10d8::,2804:10d8:ffff:ffff:ffff:ffff:ffff:ffff,BR 2804:10dc::,2804:10dc:ffff:ffff:ffff:ffff:ffff:ffff,BR @@ -16237,6 +16030,7 @@ 2804:1f18::,2804:1f18:ffff:ffff:ffff:ffff:ffff:ffff,BR 2804:1f1a::,2804:1f1a:ffff:ffff:ffff:ffff:ffff:ffff,BR 2804:1f1c::,2804:1f1c:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:1f1e::,2804:1f1e:ffff:ffff:ffff:ffff:ffff:ffff,BR 2804:2000::,2804:2000:ffff:ffff:ffff:ffff:ffff:ffff,BR 2804:2004::,2804:2004:ffff:ffff:ffff:ffff:ffff:ffff,BR 2804:2008::,2804:2008:ffff:ffff:ffff:ffff:ffff:ffff,BR @@ -16397,7 +16191,6 @@ 2804:2274::,2804:2274:ffff:ffff:ffff:ffff:ffff:ffff,BR 2804:2278::,2804:2278:ffff:ffff:ffff:ffff:ffff:ffff,BR 2804:227c::,2804:227c:ffff:ffff:ffff:ffff:ffff:ffff,BR -2804:2280::,2804:2280:ffff:ffff:ffff:ffff:ffff:ffff,BR 2804:2284::,2804:2284:ffff:ffff:ffff:ffff:ffff:ffff,BR 2804:2288::,2804:2288:ffff:ffff:ffff:ffff:ffff:ffff,BR 2804:228c::,2804:228c:ffff:ffff:ffff:ffff:ffff:ffff,BR @@ -16521,7 +16314,6 @@ 2804:2464::,2804:2464:ffff:ffff:ffff:ffff:ffff:ffff,BR 2804:2468::,2804:2468:ffff:ffff:ffff:ffff:ffff:ffff,BR 2804:246c::,2804:246c:ffff:ffff:ffff:ffff:ffff:ffff,BR -2804:2470::,2804:2470:ffff:ffff:ffff:ffff:ffff:ffff,BR 2804:2474::,2804:2474:ffff:ffff:ffff:ffff:ffff:ffff,BR 2804:2478::,2804:2478:ffff:ffff:ffff:ffff:ffff:ffff,BR 2804:247c::,2804:247c:ffff:ffff:ffff:ffff:ffff:ffff,BR @@ -17058,14 +16850,121 @@ 2804:2ccc::,2804:2ccc:ffff:ffff:ffff:ffff:ffff:ffff,BR 2804:2cd0::,2804:2cd0:ffff:ffff:ffff:ffff:ffff:ffff,BR 2804:2cd4::,2804:2cd4:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2cd8::,2804:2cd8:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2cdc::,2804:2cdc:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2ce0::,2804:2ce0:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2ce4::,2804:2ce4:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2ce8::,2804:2ce8:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2cec::,2804:2cec:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2cf0::,2804:2cf0:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2cf4::,2804:2cf4:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2cf8::,2804:2cf8:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2cfc::,2804:2cfc:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2d00::,2804:2d00:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2d04::,2804:2d04:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2d08::,2804:2d08:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2d0c::,2804:2d0c:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2d10::,2804:2d10:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2d14::,2804:2d14:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2d18::,2804:2d18:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2d1c::,2804:2d1c:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2d20::,2804:2d20:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2d24::,2804:2d24:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2d28::,2804:2d28:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2d2c::,2804:2d2c:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2d30::,2804:2d30:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2d34::,2804:2d34:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2d38::,2804:2d38:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2d3c::,2804:2d3c:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2d40::,2804:2d40:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2d44::,2804:2d44:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2d48::,2804:2d48:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2d4c::,2804:2d4c:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2d50::,2804:2d50:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2d54::,2804:2d54:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2d58::,2804:2d58:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2d5c::,2804:2d5c:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2d60::,2804:2d60:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2d64::,2804:2d64:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2d68::,2804:2d68:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2d6c::,2804:2d6c:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2d70::,2804:2d70:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2d74::,2804:2d74:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2d78::,2804:2d78:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2d7c::,2804:2d7c:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2d80::,2804:2d80:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2d84::,2804:2d84:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2d88::,2804:2d88:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2d8c::,2804:2d8c:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2d90::,2804:2d90:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2d94::,2804:2d94:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2d98::,2804:2d98:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2d9c::,2804:2d9c:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2da0::,2804:2da0:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2da4::,2804:2da4:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2da8::,2804:2da8:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2dac::,2804:2dac:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2db0::,2804:2db0:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2db4::,2804:2db4:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2db8::,2804:2db8:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2dbc::,2804:2dbc:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2dc0::,2804:2dc0:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2dc4::,2804:2dc4:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2dc8::,2804:2dc8:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2dcc::,2804:2dcc:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2dd0::,2804:2dd0:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2dd4::,2804:2dd4:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2dd8::,2804:2dd8:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2ddc::,2804:2ddc:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2de0::,2804:2de0:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2de4::,2804:2de4:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2de8::,2804:2de8:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2dec::,2804:2dec:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2df0::,2804:2df0:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2df4::,2804:2df4:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2df8::,2804:2df8:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2dfc::,2804:2dfc:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2e00::,2804:2e00:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2e04::,2804:2e04:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2e08::,2804:2e08:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2e0c::,2804:2e0c:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2e10::,2804:2e10:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2e14::,2804:2e14:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2e18::,2804:2e18:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2e1c::,2804:2e1c:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2e20::,2804:2e20:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2e24::,2804:2e24:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2e28::,2804:2e28:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2e2c::,2804:2e2c:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2e30::,2804:2e30:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2e34::,2804:2e34:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2e38::,2804:2e38:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2e3c::,2804:2e3c:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2e40::,2804:2e40:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2e44::,2804:2e44:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2e48::,2804:2e48:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2e4c::,2804:2e4c:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2e50::,2804:2e50:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2e54::,2804:2e54:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2e58::,2804:2e58:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2e5c::,2804:2e5c:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2e60::,2804:2e60:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2e64::,2804:2e64:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2e68::,2804:2e68:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2e6c::,2804:2e6c:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2e70::,2804:2e70:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2e74::,2804:2e74:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2e78::,2804:2e78:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2e7c::,2804:2e7c:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2e80::,2804:2e80:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:2e84::,2804:2e84:ffff:ffff:ffff:ffff:ffff:ffff,BR 2806::,2806:f:ffff:ffff:ffff:ffff:ffff:ffff,MX 2806:200::,2806:216::ffff:ffff:ffff:ffff:ffff,MX -2806:217::,2806:21d:ffff:ffff:ffff:ffff:ffff:ffff,MX -2806:220::,2806:220:ffff:ffff:ffff:ffff:ffff:ffff,MX +2806:217::,2806:220:ffff:ffff:ffff:ffff:ffff:ffff,MX 2806:230::,2806:230:ffff:ffff:ffff:ffff:ffff:ffff,MX 2806:238::,2806:238::ffff:ffff:ffff:ffff:ffff,MX 2806:238:10::,2806:238:10:ffff:ffff:ffff:ffff:ffff,MX -2806:239::,2806:239:ffff:ffff:ffff:ffff:ffff:ffff,MX +2806:239::,2806:23a:ffff:ffff:ffff:ffff:ffff:ffff,MX 2806:240::,2806:240:ffff:ffff:ffff:ffff:ffff:ffff,MX 2806:250::,2806:250:ffff:ffff:ffff:ffff:ffff:ffff,MX 2806:260::,2806:260:ffff:ffff:ffff:ffff:ffff:ffff,MX @@ -17177,9 +17076,7 @@ 2a00:ef0::,2a00:ef0:ffff:ffff:ffff:ffff:ffff:ffff,DK 2a00:ef8::,2a00:ef8:ffff:ffff:ffff:ffff:ffff:ffff,NO 2a00:f00::,2a00:f08:ffff:ffff:ffff:ffff:ffff:ffff,RU -2a00:f10::,2a00:f10:120:ffff:ffff:ffff:ffff:ffff,NL -2a00:f10:121::,2a00:f10:121:7fff:ffff:ffff:ffff:ffff,FR -2a00:f10:121:8000::,2a00:f17:ffff:ffff:ffff:ffff:ffff:ffff,NL +2a00:f10::,2a00:f17:ffff:ffff:ffff:ffff:ffff:ffff,NL 2a00:f18::,2a00:f18:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a00:f20::,2a00:f20:ffff:ffff:ffff:ffff:ffff:ffff,IT 2a00:f28::,2a00:f2f:ffff:ffff:ffff:ffff:ffff:ffff,AE @@ -17213,14 +17110,12 @@ 2a00:1010::,2a00:1010:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a00:1018::,2a00:1018:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a00:1020::,2a00:1020:ffff:ffff:ffff:ffff:ffff:ffff,RU -2a00:1028::,2a00:1028:ffff:ffff:ffff:ffff:ffff:ffff,CZ +2a00:1028::,2a00:102f:ffff:ffff:ffff:ffff:ffff:ffff,CZ 2a00:1030::,2a00:1030:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a00:1040::,2a00:1040:ffff:ffff:ffff:ffff:ffff:ffff,DK 2a00:1048::,2a00:1048:ffff:ffff:ffff:ffff:ffff:ffff,NL 2a00:1050::,2a00:1050:ffff:ffff:ffff:ffff:ffff:ffff,DE -2a00:1058::,2a00:1058:111:ffff:ffff:ffff:ffff:ffff,FR -2a00:1058:112::,2a00:1058:112:7fff:ffff:ffff:ffff:ffff,GB -2a00:1058:112:8000::,2a00:1058:ffff:ffff:ffff:ffff:ffff:ffff,FR +2a00:1058::,2a00:1058:ffff:ffff:ffff:ffff:ffff:ffff,FR 2a00:1060::,2a00:1060:ffff:ffff:ffff:ffff:ffff:ffff,MT 2a00:1068::,2a00:1068:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a00:1070::,2a00:1070:ffff:ffff:ffff:ffff:ffff:ffff,GB @@ -17254,9 +17149,7 @@ 2a00:1160::,2a00:1167:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a00:1168::,2a00:116f:ffff:ffff:ffff:ffff:ffff:ffff,NL 2a00:1170::,2a00:1170:ffff:ffff:ffff:ffff:ffff:ffff,IE -2a00:1178::,2a00:1178::ffff:ffff:ffff:ffff:ffff,NL -2a00:1178:1::,2a00:1178:1:7fff:ffff:ffff:ffff:ffff,US -2a00:1178:1:8000::,2a00:1178:ffff:ffff:ffff:ffff:ffff:ffff,NL +2a00:1178::,2a00:1178:ffff:ffff:ffff:ffff:ffff:ffff,NL 2a00:1180::,2a00:1180:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a00:1188::,2a00:1188:ffff:ffff:ffff:ffff:ffff:ffff,NL 2a00:1190::,2a00:1190:ffff:ffff:ffff:ffff:ffff:ffff,FI @@ -17264,9 +17157,7 @@ 2a00:11a8::,2a00:11a8:ffff:ffff:ffff:ffff:ffff:ffff,OM 2a00:11b0::,2a00:11b0:ffff:ffff:ffff:ffff:ffff:ffff,CZ 2a00:11b8::,2a00:11b8:ffff:ffff:ffff:ffff:ffff:ffff,GB -2a00:11c0::,2a00:11c0:4:ffff:ffff:ffff:ffff:ffff,AT -2a00:11c0:5::,2a00:11c0:5:7fff:ffff:ffff:ffff:ffff,CH -2a00:11c0:5:8000::,2a00:11c0:7:ffff:ffff:ffff:ffff:ffff,AT +2a00:11c0::,2a00:11c0:7:ffff:ffff:ffff:ffff:ffff,AT 2a00:11c0:8::,2a00:11c0:8:ffff:ffff:ffff:ffff:ffff,GB 2a00:11c0:9::,2a00:11c0:a:ffff:ffff:ffff:ffff:ffff,AT 2a00:11c0:b::,2a00:11c0:b:ffff:ffff:ffff:ffff:ffff,IT @@ -17526,9 +17417,7 @@ 2a00:1a10::,2a00:1a10:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a00:1a18::,2a00:1a18:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a00:1a20::,2a00:1a20:ffff:ffff:ffff:ffff:ffff:ffff,SI -2a00:1a28::,2a00:1a28:1162:ffff:ffff:ffff:ffff:ffff,SE -2a00:1a28:1163::,2a00:1a28:1163:7fff:ffff:ffff:ffff:ffff,GB -2a00:1a28:1163:8000::,2a00:1a28:ffff:ffff:ffff:ffff:ffff:ffff,SE +2a00:1a28::,2a00:1a28:ffff:ffff:ffff:ffff:ffff:ffff,SE 2a00:1a30::,2a00:1a30:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a00:1a38::,2a00:1a38:ffff:ffff:ffff:ffff:ffff:ffff,RU 2a00:1a40::,2a00:1a40:ffff:ffff:ffff:ffff:ffff:ffff,PL @@ -17738,6 +17627,7 @@ 2a00:4280::,2a00:4280:ffff:ffff:ffff:ffff:ffff:ffff,FR 2a00:42a0::,2a00:42a0:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a00:42c0::,2a00:42c0:ffff:ffff:ffff:ffff:ffff:ffff,FR +2a00:42e0::,2a00:42e0:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a00:4300::,2a00:4300:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a00:4320::,2a00:4320:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a00:4340::,2a00:4340:ffff:ffff:ffff:ffff:ffff:ffff,GB @@ -17777,6 +17667,7 @@ 2a00:4780::,2a00:4780:ffff:ffff:ffff:ffff:ffff:ffff,FR 2a00:47a0::,2a00:47a0:ffff:ffff:ffff:ffff:ffff:ffff,KG 2a00:47c0::,2a00:47c0:ffff:ffff:ffff:ffff:ffff:ffff,GB +2a00:47e0::,2a00:47e0:ffff:ffff:ffff:ffff:ffff:ffff,DK 2a00:4800::,2a00:4807:ffff:ffff:ffff:ffff:ffff:ffff,BG 2a00:4820::,2a00:4820:ffff:ffff:ffff:ffff:ffff:ffff,DK 2a00:4840::,2a00:4847:ffff:ffff:ffff:ffff:ffff:ffff,DE @@ -17879,10 +17770,7 @@ 2a00:54a0::,2a00:54a0:ffff:ffff:ffff:ffff:ffff:ffff,TR 2a00:54c0::,2a00:54c0:ffff:ffff:ffff:ffff:ffff:ffff,PL 2a00:54e0::,2a00:54e0:ffff:ffff:ffff:ffff:ffff:ffff,IT -2a00:5500::,2a00:5500::7fff:ffff:ffff:ffff:ffff,AX -2a00:5500:0:8000::,2a00:5500:1:ffff:ffff:ffff:ffff:ffff,FI -2a00:5500:2::,2a00:5500:2:7fff:ffff:ffff:ffff:ffff,AX -2a00:5500:2:8000::,2a00:5500:ffff:ffff:ffff:ffff:ffff:ffff,FI +2a00:5500::,2a00:5500:ffff:ffff:ffff:ffff:ffff:ffff,FI 2a00:5520::,2a00:5520:ffff:ffff:ffff:ffff:ffff:ffff,FR 2a00:5540::,2a00:5540:385:ffff:ffff:ffff:ffff:ffff,GB 2a00:5540:386::,2a00:5540:387:ffff:ffff:ffff:ffff:ffff,SI @@ -18021,6 +17909,7 @@ 2a00:6620::,2a00:6620:ffff:ffff:ffff:ffff:ffff:ffff,GR 2a00:6640::,2a00:6647:ffff:ffff:ffff:ffff:ffff:ffff,ES 2a00:6660::,2a00:6660:ffff:ffff:ffff:ffff:ffff:ffff,SE +2a00:6680::,2a00:6680:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a00:66a0::,2a00:66a0:ffff:ffff:ffff:ffff:ffff:ffff,IL 2a00:66c0::,2a00:66c0:ffff:ffff:ffff:ffff:ffff:ffff,SE 2a00:66e0::,2a00:66e0:ffff:ffff:ffff:ffff:ffff:ffff,TR @@ -18174,28 +18063,18 @@ 2a00:7980::,2a00:7980:ffff:ffff:ffff:ffff:ffff:ffff,RU 2a00:79a0::,2a00:79a0:ffff:ffff:ffff:ffff:ffff:ffff,RU 2a00:79c0::,2a00:79c0:ffff:ffff:ffff:ffff:ffff:ffff,DE -2a00:79e0::,2a00:79e0::ffff:ffff:ffff:ffff:ffff,CH -2a00:79e0:1::,2a00:79e0:1:7fff:ffff:ffff:ffff:ffff,CZ -2a00:79e0:1:8000::,2a00:79e0:1:ffff:ffff:ffff:ffff:ffff,CH -2a00:79e0:2::,2a00:79e0:2:7fff:ffff:ffff:ffff:ffff,PL -2a00:79e0:2:8000::,2a00:79e0:2:ffff:ffff:ffff:ffff:ffff,CH -2a00:79e0:3::,2a00:79e0:3:7fff:ffff:ffff:ffff:ffff,IE -2a00:79e0:3:8000::,2a00:79e0:4:7fff:ffff:ffff:ffff:ffff,CH -2a00:79e0:4:8000::,2a00:79e0:4:ffff:ffff:ffff:ffff:ffff,FI -2a00:79e0:5::,2a00:79e0:5:ffff:ffff:ffff:ffff:ffff,CH -2a00:79e0:6::,2a00:79e0:6:ffff:ffff:ffff:ffff:ffff,GB -2a00:79e0:7::,2a00:79e0:a:7fff:ffff:ffff:ffff:ffff,CH -2a00:79e0:a:8000::,2a00:79e0:a:ffff:ffff:ffff:ffff:ffff,GB -2a00:79e0:b::,2a00:79e0:b:ffff:ffff:ffff:ffff:ffff,IT -2a00:79e0:c::,2a00:79e0:c:ffff:ffff:ffff:ffff:ffff,GB -2a00:79e0:d::,2a00:79e0:13:ffff:ffff:ffff:ffff:ffff,CH +2a00:79e0::,2a00:79e0:13:ffff:ffff:ffff:ffff:ffff,CH 2a00:79e0:14::,2a00:79e0:14:ffff:ffff:ffff:ffff:ffff,ZA 2a00:79e0:15::,2a00:79e0:15:ffff:ffff:ffff:ffff:ffff,DE 2a00:79e0:16::,2a00:79e0:1b:ffff:ffff:ffff:ffff:ffff,CH 2a00:79e0:1c::,2a00:79e0:1c:ffff:ffff:ffff:ffff:ffff,GH -2a00:79e0:1d::,2a00:79e0:22:ffff:ffff:ffff:ffff:ffff,CH +2a00:79e0:1d::,2a00:79e0:1e:ffff:ffff:ffff:ffff:ffff,CH +2a00:79e0:1f::,2a00:79e0:1f:ffff:ffff:ffff:ffff:ffff,LT +2a00:79e0:20::,2a00:79e0:22:ffff:ffff:ffff:ffff:ffff,CH 2a00:79e0:23::,2a00:79e0:23:ffff:ffff:ffff:ffff:ffff,GB -2a00:79e0:24::,2a00:79e1:ffff:ffff:ffff:ffff:ffff:ffff,CH +2a00:79e0:24::,2a00:79e0:26:ffff:ffff:ffff:ffff:ffff,CH +2a00:79e0:27::,2a00:79e0:27:ffff:ffff:ffff:ffff:ffff,NL +2a00:79e0:28::,2a00:79e1:ffff:ffff:ffff:ffff:ffff:ffff,CH 2a00:7a00::,2a00:7a00:ffff:ffff:ffff:ffff:ffff:ffff,NO 2a00:7a20::,2a00:7a20:ffff:ffff:ffff:ffff:ffff:ffff,FI 2a00:7a40::,2a00:7a40:ffff:ffff:ffff:ffff:ffff:ffff,GB @@ -18308,7 +18187,6 @@ 2a00:8800::,2a00:8800:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a00:8820::,2a00:8820:ffff:ffff:ffff:ffff:ffff:ffff,SA 2a00:8840::,2a00:8840:ffff:ffff:ffff:ffff:ffff:ffff,UZ -2a00:8860:8001::,2a00:8860:8001:7fff:ffff:ffff:ffff:ffff,US 2a00:8880::,2a00:8880:ffff:ffff:ffff:ffff:ffff:ffff,FR 2a00:88a0::,2a00:88a0:ffff:ffff:ffff:ffff:ffff:ffff,FR 2a00:88c0::,2a00:88c0:ffff:ffff:ffff:ffff:ffff:ffff,RU @@ -18382,6 +18260,7 @@ 2a00:9180::,2a00:9180:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a00:91a0::,2a00:91a0:ffff:ffff:ffff:ffff:ffff:ffff,ES 2a00:91c0::,2a00:91c0:ffff:ffff:ffff:ffff:ffff:ffff,GB +2a00:91e0::,2a00:91e0:ffff:ffff:ffff:ffff:ffff:ffff,IT 2a00:9200::,2a00:9200:ffff:ffff:ffff:ffff:ffff:ffff,RU 2a00:9220::,2a00:9220:ffff:ffff:ffff:ffff:ffff:ffff,CH 2a00:9240::,2a00:9240:ffff:ffff:ffff:ffff:ffff:ffff,HR @@ -18461,7 +18340,6 @@ 2a00:9ae0::,2a00:9ae0:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a00:9b00::,2a00:9b00:ffff:ffff:ffff:ffff:ffff:ffff,FI 2a00:9b20::,2a00:9b20:ffff:ffff:ffff:ffff:ffff:ffff,IR -2a00:9b40::,2a00:9b40:ffff:ffff:ffff:ffff:ffff:ffff,KZ 2a00:9b60::,2a00:9b60:ffff:ffff:ffff:ffff:ffff:ffff,NL 2a00:9b80::,2a00:9b80:ffff:ffff:ffff:ffff:ffff:ffff,BE 2a00:9ba0::,2a00:9ba0:ffff:ffff:ffff:ffff:ffff:ffff,GB @@ -18543,9 +18421,7 @@ 2a00:a520::,2a00:a520:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a00:a540::,2a00:a540:ffff:ffff:ffff:ffff:ffff:ffff,NO 2a00:a560::,2a00:a560:ffff:ffff:ffff:ffff:ffff:ffff,PL -2a00:a580::,2a00:a580:10a4:ffff:ffff:ffff:ffff:ffff,FR -2a00:a580:10a5::,2a00:a580:10a5:7fff:ffff:ffff:ffff:ffff,DE -2a00:a580:10a5:8000::,2a00:a580:ffff:ffff:ffff:ffff:ffff:ffff,FR +2a00:a580::,2a00:a580:ffff:ffff:ffff:ffff:ffff:ffff,FR 2a00:a5a0::,2a00:a5a0:ffff:ffff:ffff:ffff:ffff:ffff,CZ 2a00:a5c0::,2a00:a5c0:ffff:ffff:ffff:ffff:ffff:ffff,NL 2a00:a5e0::,2a00:a5e0:ffff:ffff:ffff:ffff:ffff:ffff,RU @@ -18633,6 +18509,7 @@ 2a00:b040::,2a00:b040:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a00:b060::,2a00:b060:ffff:ffff:ffff:ffff:ffff:ffff,BE 2a00:b080::,2a00:b080:ffff:ffff:ffff:ffff:ffff:ffff,ES +2a00:b0a0::,2a00:b0a0:ffff:ffff:ffff:ffff:ffff:ffff,CH 2a00:b0c0::,2a00:b0c0:ffff:ffff:ffff:ffff:ffff:ffff,HU 2a00:b0e0::,2a00:b0e0:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a00:b100::,2a00:b100:ffff:ffff:ffff:ffff:ffff:ffff,RU @@ -18894,7 +18771,9 @@ 2a00:d140::,2a00:d140:ffff:ffff:ffff:ffff:ffff:ffff,RS 2a00:d160::,2a00:d160:ffff:ffff:ffff:ffff:ffff:ffff,RU 2a00:d180::,2a00:d180:ffff:ffff:ffff:ffff:ffff:ffff,PT -2a00:d1a0::,2a00:d1a0:ffff:ffff:ffff:ffff:ffff:ffff,DE +2a00:d1a0::,2a00:d1a0:f:ffff:ffff:ffff:ffff:ffff,DE +2a00:d1a0:10::,2a00:d1a0:1f:ffff:ffff:ffff:ffff:ffff,GB +2a00:d1a0:20::,2a00:d1a0:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a00:d1c0::,2a00:d1c0:ffff:ffff:ffff:ffff:ffff:ffff,NL 2a00:d1e0::,2a00:d1e0:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a00:d200::,2a00:d200:ffff:ffff:ffff:ffff:ffff:ffff,GB @@ -19065,8 +18944,7 @@ 2a00:e760::,2a00:e760:ffff:ffff:ffff:ffff:ffff:ffff,BE 2a00:e780::,2a00:e780:ffff:ffff:ffff:ffff:ffff:ffff,UA 2a00:e7a0::,2a00:e7a0:ffff:ffff:ffff:ffff:ffff:ffff,GB -2a00:e7c0::,2a00:e7c0::7fff:ffff:ffff:ffff:ffff,LT -2a00:e7c0:0:8000::,2a00:e7c0:ffff:ffff:ffff:ffff:ffff:ffff,DK +2a00:e7c0::,2a00:e7c0:ffff:ffff:ffff:ffff:ffff:ffff,DK 2a00:e7e0::,2a00:e7e0:ffff:ffff:ffff:ffff:ffff:ffff,CH 2a00:e800::,2a00:e807:ffff:ffff:ffff:ffff:ffff:ffff,PL 2a00:e840::,2a00:e840:ffff:ffff:ffff:ffff:ffff:ffff,FR @@ -19103,8 +18981,7 @@ 2a00:ec20::,2a00:ec23:ffff:ffff:ffff:ffff:ffff:ffff,FR 2a00:ec40::,2a00:ec47:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a00:ec80::,2a00:ec80:ffff:ffff:ffff:ffff:ffff:ffff,FR -2a00:eca0::,2a00:eca0::7fff:ffff:ffff:ffff:ffff,AX -2a00:eca0:0:8000::,2a00:eca0:ffff:ffff:ffff:ffff:ffff:ffff,FI +2a00:eca0::,2a00:eca0:ffff:ffff:ffff:ffff:ffff:ffff,FI 2a00:ecc0::,2a00:ecc0:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a00:ece0::,2a00:ece7:ffff:ffff:ffff:ffff:ffff:ffff,RO 2a00:ed00::,2a00:ed00:ffff:ffff:ffff:ffff:ffff:ffff,GB @@ -19123,6 +19000,7 @@ 2a00:eea0::,2a00:eea0:ffff:ffff:ffff:ffff:ffff:ffff,IT 2a00:eec0::,2a00:eec0:ffff:ffff:ffff:ffff:ffff:ffff,DK 2a00:eee0::,2a00:eee0:ffff:ffff:ffff:ffff:ffff:ffff,TR +2a00:ef00::,2a00:ef00:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a00:ef20::,2a00:ef20:ffff:ffff:ffff:ffff:ffff:ffff,NL 2a00:ef40::,2a00:ef40:ffff:ffff:ffff:ffff:ffff:ffff,PL 2a00:ef60::,2a00:ef67:ffff:ffff:ffff:ffff:ffff:ffff,FR @@ -19200,7 +19078,7 @@ 2a00:f8a0::,2a00:f8a0:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a00:f8c0::,2a00:f8c0:ffff:ffff:ffff:ffff:ffff:ffff,LI 2a00:f8e0::,2a00:f8e0:ffff:ffff:ffff:ffff:ffff:ffff,DE -2a00:f900::,2a00:f900:ffff:ffff:ffff:ffff:ffff:ffff,MD +2a00:f900::,2a00:f907:ffff:ffff:ffff:ffff:ffff:ffff,MD 2a00:f920::,2a00:f920:ffff:ffff:ffff:ffff:ffff:ffff,RU 2a00:f940::,2a00:f940:ffff:ffff:ffff:ffff:ffff:ffff,RU 2a00:f960::,2a00:f960:ffff:ffff:ffff:ffff:ffff:ffff,IS @@ -19244,7 +19122,7 @@ 2a00:fe20::,2a00:fe20:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a00:fe40::,2a00:fe40:ffff:ffff:ffff:ffff:ffff:ffff,ES 2a00:fe60::,2a00:fe60:ffff:ffff:ffff:ffff:ffff:ffff,FI -2a00:fe80::,2a00:fe80:ffff:ffff:ffff:ffff:ffff:ffff,ME +2a00:fe80::,2a00:fe87:ffff:ffff:ffff:ffff:ffff:ffff,ME 2a00:fea0::,2a00:fea7:ffff:ffff:ffff:ffff:ffff:ffff,CZ 2a00:fec0::,2a00:fec0:ffff:ffff:ffff:ffff:ffff:ffff,TR 2a00:fee0::,2a00:fee0:ffff:ffff:ffff:ffff:ffff:ffff,RU @@ -19284,21 +19162,7 @@ 2a01:c8::,2a01:c8:ffff:ffff:ffff:ffff:ffff:ffff,FR 2a01:d0::,2a01:d0:896c:7fff:ffff:ffff:ffff:ffff,UA 2a01:d0:896c:8000::,2a01:d0:896c:ffff:ffff:ffff:ffff:ffff,RU -2a01:d0:896d::,2a01:d0:8de4:ffff:ffff:ffff:ffff:ffff,UA -2a01:d0:8de5::,2a01:d0:8de5:7fff:ffff:ffff:ffff:ffff,RU -2a01:d0:8de5:8000::,2a01:d0:9008:ffff:ffff:ffff:ffff:ffff,UA -2a01:d0:9009::,2a01:d0:9009:7fff:ffff:ffff:ffff:ffff,RU -2a01:d0:9009:8000::,2a01:d0:92ea:ffff:ffff:ffff:ffff:ffff,UA -2a01:d0:92eb::,2a01:d0:92eb:7fff:ffff:ffff:ffff:ffff,RU -2a01:d0:92eb:8000::,2a01:d0:93ff:ffff:ffff:ffff:ffff:ffff,UA -2a01:d0:9400::,2a01:d0:9400:7fff:ffff:ffff:ffff:ffff,RU -2a01:d0:9400:8000::,2a01:d0:95d7:ffff:ffff:ffff:ffff:ffff,UA -2a01:d0:95d8::,2a01:d0:95d8:7fff:ffff:ffff:ffff:ffff,RU -2a01:d0:95d8:8000::,2a01:d0:b2f5:ffff:ffff:ffff:ffff:ffff,UA -2a01:d0:b2f6::,2a01:d0:b2f6:7fff:ffff:ffff:ffff:ffff,RU -2a01:d0:b2f6:8000::,2a01:d0:bf61:ffff:ffff:ffff:ffff:ffff,UA -2a01:d0:bf62::,2a01:d0:bf62:7fff:ffff:ffff:ffff:ffff,RU -2a01:d0:bf62:8000::,2a01:d0:bfcf:ffff:ffff:ffff:ffff:ffff,UA +2a01:d0:896d::,2a01:d0:bfcf:ffff:ffff:ffff:ffff:ffff,UA 2a01:d0:bfd0::,2a01:d0:bfd0:7fff:ffff:ffff:ffff:ffff,RU 2a01:d0:bfd0:8000::,2a01:d0:ffff:ffff:ffff:ffff:ffff:ffff,UA 2a01:d8::,2a01:d8:ffff:ffff:ffff:ffff:ffff:ffff,RU @@ -19308,7 +19172,68 @@ 2a01:f8::,2a01:f8:ffff:ffff:ffff:ffff:ffff:ffff,AT 2a01:100::,2a01:100:ffff:ffff:ffff:ffff:ffff:ffff,AT 2a01:108::,2a01:108:ffff:ffff:ffff:ffff:ffff:ffff,SK -2a01:110::,2a01:111:ffff:ffff:ffff:ffff:ffff:ffff,GB +2a01:110::,2a01:111::c6:3fff:ffff:ffff:ffff,GB +2a01:111:0:c6:4000::,2a01:111::c6:7fff:ffff:ffff:ffff,IE +2a01:111:0:c6:8000::,2a01:111::cb:bfff:ffff:ffff:ffff,GB +2a01:111:0:cb:c000::,2a01:111::cb:ffff:ffff:ffff:ffff,US +2a01:111:0:cc::,2a01:111::d7:ffff:ffff:ffff:ffff,GB +2a01:111:0:d8::,2a01:111::d8:3fff:ffff:ffff:ffff,US +2a01:111:0:d8:4000::,2a01:111::e0:7fff:ffff:ffff:ffff,GB +2a01:111:0:e0:8000::,2a01:111::e0:bfff:ffff:ffff:ffff,US +2a01:111:0:e0:c000::,2a01:111::11f:ffff:ffff:ffff:ffff,GB +2a01:111:0:120::,2a01:111::120:3fff:ffff:ffff:ffff,US +2a01:111:0:120:4000::,2a01:111::121:3fff:ffff:ffff:ffff,GB +2a01:111:0:121:4000::,2a01:111::121:bfff:ffff:ffff:ffff,US +2a01:111:0:121:c000::,2a01:111:2000:ffff:ffff:ffff:ffff:ffff,GB +2a01:111:2001::,2a01:111:2001:ffff:ffff:ffff:ffff:ffff,US +2a01:111:2002::,2a01:111:2006:ffff:ffff:ffff:ffff:ffff,GB +2a01:111:2007::,2a01:111:2007:ffff:ffff:ffff:ffff:ffff,AU +2a01:111:2008::,2a01:111:2008:ffff:ffff:ffff:ffff:ffff,US +2a01:111:2009::,2a01:111:2016:ffff:ffff:ffff:ffff:ffff,GB +2a01:111:2017::,2a01:111:2017:ffff:ffff:ffff:ffff:ffff,BR +2a01:111:2018::,2a01:111:2019:ffff:ffff:ffff:ffff:ffff,US +2a01:111:201a::,2a01:111:201a:ffff:ffff:ffff:ffff:ffff,SG +2a01:111:201b::,2a01:111:201c:ffff:ffff:ffff:ffff:ffff,US +2a01:111:201d::,2a01:111:201d:ffff:ffff:ffff:ffff:ffff,HK +2a01:111:201e::,2a01:111:201f:ffff:ffff:ffff:ffff:ffff,US +2a01:111:2020::,2a01:111:2025:ffff:ffff:ffff:ffff:ffff,GB +2a01:111:2026::,2a01:111:2026:ffff:ffff:ffff:ffff:ffff,IE +2a01:111:2027::,2a01:111:2027:ffff:ffff:ffff:ffff:ffff,NL +2a01:111:2028::,2a01:111:2028:ffff:ffff:ffff:ffff:ffff,GB +2a01:111:2029::,2a01:111:2029:ffff:ffff:ffff:ffff:ffff,US +2a01:111:202a::,2a01:111:202a:ffff:ffff:ffff:ffff:ffff,NL +2a01:111:202b::,2a01:111:202b:ffff:ffff:ffff:ffff:ffff,IE +2a01:111:202c::,2a01:111:2032:ffff:ffff:ffff:ffff:ffff,GB +2a01:111:2033::,2a01:111:2033:ffff:ffff:ffff:ffff:ffff,IE +2a01:111:2034::,2a01:111:2034:ffff:ffff:ffff:ffff:ffff,AU +2a01:111:2035::,2a01:111:2035:ffff:ffff:ffff:ffff:ffff,SG +2a01:111:2036::,2a01:111:2036:ffff:ffff:ffff:ffff:ffff,JP +2a01:111:2037::,2a01:111:2037:ffff:ffff:ffff:ffff:ffff,NL +2a01:111:2038::,2a01:111:2038:ffff:ffff:ffff:ffff:ffff,US +2a01:111:2039::,2a01:111:2039:ffff:ffff:ffff:ffff:ffff,GB +2a01:111:203a::,2a01:111:203a:ffff:ffff:ffff:ffff:ffff,BR +2a01:111:203b::,2a01:111:203b:ffff:ffff:ffff:ffff:ffff,AT +2a01:111:203c::,2a01:111:203c:ffff:ffff:ffff:ffff:ffff,GB +2a01:111:203d::,2a01:111:203d:ffff:ffff:ffff:ffff:ffff,NL +2a01:111:203e::,2a01:111:203f:ffff:ffff:ffff:ffff:ffff,IN +2a01:111:2040::,2a01:111:2041:ffff:ffff:ffff:ffff:ffff,US +2a01:111:2042::,2a01:111:2042:ffff:ffff:ffff:ffff:ffff,FI +2a01:111:2043::,2a01:111:2045:ffff:ffff:ffff:ffff:ffff,GB +2a01:111:2046::,2a01:111:2046:ffff:ffff:ffff:ffff:ffff,JP +2a01:111:2047::,2a01:111:2048:ffff:ffff:ffff:ffff:ffff,CA +2a01:111:2049::,2a01:111:207f:ffff:ffff:ffff:ffff:ffff,GB +2a01:111:2080::,2a01:111:2080:ffff:ffff:ffff:ffff:ffff,US +2a01:111:2081::,2a01:111:f00f:ffff:ffff:ffff:ffff:ffff,GB +2a01:111:f010::,2a01:111:f013:ffff:ffff:ffff:ffff:ffff,US +2a01:111:f014::,2a01:111:f0ff:ffff:ffff:ffff:ffff:ffff,GB +2a01:111:f100::,2a01:111:f100:fff:ffff:ffff:ffff:ffff,US +2a01:111:f100:1000::,2a01:111:f20a:ffff:ffff:ffff:ffff:ffff,GB +2a01:111:f20b::,2a01:111:f20b:ffff:ffff:ffff:ffff:ffff,IE +2a01:111:f20c::,2a01:111:f20f:ffff:ffff:ffff:ffff:ffff,GB +2a01:111:f210::,2a01:111:f210:ffff:ffff:ffff:ffff:ffff,US +2a01:111:f211::,2a01:111:f4ff:ffff:ffff:ffff:ffff:ffff,GB +2a01:111:f500::,2a01:111:f500:ffff:ffff:ffff:ffff:ffff,US +2a01:111:f501::,2a01:111:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a01:120::,2a01:120:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a01:130::,2a01:138:a01c:ffff:ffff:ffff:ffff:ffff,DE 2a01:138:a01d::,2a01:138:a01d:ffff:ffff:ffff:ffff:ffff,CH @@ -19331,7 +19256,7 @@ 2a01:1b8::,2a01:1b8:ffff:ffff:ffff:ffff:ffff:ffff,EE 2a01:1c0::,2a01:1c0:ffff:ffff:ffff:ffff:ffff:ffff,FR 2a01:1c8::,2a01:1cf:ffff:ffff:ffff:ffff:ffff:ffff,ES -2a01:1d0::,2a01:1d0:ffff:ffff:ffff:ffff:ffff:ffff,JO +2a01:1d0::,2a01:1d7:ffff:ffff:ffff:ffff:ffff:ffff,JO 2a01:1d8::,2a01:1df:ffff:ffff:ffff:ffff:ffff:ffff,PL 2a01:1e0::,2a01:1e0:ffff:ffff:ffff:ffff:ffff:ffff,IE 2a01:1e8::,2a01:1e8:ffff:ffff:ffff:ffff:ffff:ffff,DE @@ -19344,13 +19269,11 @@ 2a01:228::,2a01:228:ffff:ffff:ffff:ffff:ffff:ffff,CH 2a01:230::,2a01:230:ffff:ffff:ffff:ffff:ffff:ffff,RU 2a01:238::,2a01:238:ffff:ffff:ffff:ffff:ffff:ffff,DE -2a01:240::,2a01:240:feda:ffff:ffff:ffff:ffff:ffff,FR -2a01:240:fedb::,2a01:240:fedb:7fff:ffff:ffff:ffff:ffff,PT -2a01:240:fedb:8000::,2a01:240:ffff:ffff:ffff:ffff:ffff:ffff,FR +2a01:240::,2a01:240:ffff:ffff:ffff:ffff:ffff:ffff,FR 2a01:248::,2a01:248:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a01:250::,2a01:250:ffff:ffff:ffff:ffff:ffff:ffff,ES 2a01:258::,2a01:258:ffff:ffff:ffff:ffff:ffff:ffff,IE -2a01:260::,2a01:260:ffff:ffff:ffff:ffff:ffff:ffff,SI +2a01:260::,2a01:267:ffff:ffff:ffff:ffff:ffff:ffff,SI 2a01:268::,2a01:268:ffff:ffff:ffff:ffff:ffff:ffff,IE 2a01:270::,2a01:270:ffff:ffff:ffff:ffff:ffff:ffff,HU 2a01:278::,2a01:27f:ffff:ffff:ffff:ffff:ffff:ffff,CH @@ -19369,35 +19292,31 @@ 2a01:2d0::,2a01:2d0:ffff:ffff:ffff:ffff:ffff:ffff,CH 2a01:2d8::,2a01:2df:ffff:ffff:ffff:ffff:ffff:ffff,IT 2a01:2e0::,2a01:2ef:ffff:ffff:ffff:ffff:ffff:ffff,PL -2a01:300:22::,2a01:300:22:7fff:ffff:ffff:ffff:ffff,GB 2a01:308::,2a01:308:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a01:310::,2a01:310:ffff:ffff:ffff:ffff:ffff:ffff,NL 2a01:320::,2a01:320:ffff:ffff:ffff:ffff:ffff:ffff,MD 2a01:328::,2a01:328:ffff:ffff:ffff:ffff:ffff:ffff,SK 2a01:330::,2a01:330:ffff:ffff:ffff:ffff:ffff:ffff,CH 2a01:338::,2a01:338:ffff:ffff:ffff:ffff:ffff:ffff,PL -2a01:348::,2a01:348:338:ffff:ffff:ffff:ffff:ffff,GB -2a01:348:339::,2a01:348:339:7fff:ffff:ffff:ffff:ffff,NL -2a01:348:339:8000::,2a01:348:ffff:ffff:ffff:ffff:ffff:ffff,GB +2a01:348::,2a01:348:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a01:350::,2a01:350:ffff:ffff:ffff:ffff:ffff:ffff,NL 2a01:358::,2a01:35f:ffff:ffff:ffff:ffff:ffff:ffff,TR 2a01:360::,2a01:367:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a01:368::,2a01:36f:ffff:ffff:ffff:ffff:ffff:ffff,HU 2a01:378::,2a01:378:ffff:ffff:ffff:ffff:ffff:ffff,FR 2a01:380::,2a01:380:ffff:ffff:ffff:ffff:ffff:ffff,NL -2a01:388::,2a01:388:24e:ffff:ffff:ffff:ffff:ffff,GB -2a01:388:24f::,2a01:388:24f:7fff:ffff:ffff:ffff:ffff,NL -2a01:388:24f:8000::,2a01:38f:ffff:ffff:ffff:ffff:ffff:ffff,GB +2a01:388::,2a01:388:250:ffff:ffff:ffff:ffff:ffff,GB +2a01:388:251::,2a01:388:251:7fff:ffff:ffff:ffff:ffff,NL +2a01:388:251:8000::,2a01:38f:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a01:390::,2a01:390:ffff:ffff:ffff:ffff:ffff:ffff,SK 2a01:398::,2a01:398:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a01:3a0::,2a01:3a7:ffff:ffff:ffff:ffff:ffff:ffff,DK 2a01:3a8::,2a01:3a8:ffff:ffff:ffff:ffff:ffff:ffff,NL -2a01:3b0:1::,2a01:3b0:1:7fff:ffff:ffff:ffff:ffff,DE -2a01:3b0:c08::,2a01:3b0:c08:7fff:ffff:ffff:ffff:ffff,DE 2a01:3b8::,2a01:3b8:ffff:ffff:ffff:ffff:ffff:ffff,SE 2a01:3c8::,2a01:3c8:ffff:ffff:ffff:ffff:ffff:ffff,IR 2a01:3d8::,2a01:3d8:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a01:3e0:402::,2a01:3e0:403:ffff:ffff:ffff:ffff:ffff,FR +2a01:3e0:801::,2a01:3e0:801:ffff:ffff:ffff:ffff:ffff,FR 2a01:3e0:d01::,2a01:3e0:d02:ffff:ffff:ffff:ffff:ffff,GB 2a01:3e0:1101::,2a01:3e0:1101:ffff:ffff:ffff:ffff:ffff,NL 2a01:3e0:1200::,2a01:3e0:1200:1ff:ffff:ffff:ffff:ffff,FR @@ -19408,6 +19327,7 @@ 2a01:3e0:1601::,2a01:3e0:1601:ffff:ffff:ffff:ffff:ffff,FI 2a01:3e0:1700::,2a01:3e0:1701:ff:ffff:ffff:ffff:ffff,GB 2a01:3e0:1b00::,2a01:3e0:1b00:ffff:ffff:ffff:ffff:ffff,FI +2a01:3e0:1d00::,2a01:3e0:1d00:ff:ffff:ffff:ffff:ffff,CH 2a01:3e0:ff24::,2a01:3e0:ff24:ffff:ffff:ffff:ffff:ffff,DE 2a01:3e8::,2a01:3e8:ffff:ffff:ffff:ffff:ffff:ffff,IT 2a01:3f0::,2a01:3f7:ffff:ffff:ffff:ffff:ffff:ffff,SE @@ -19441,9 +19361,7 @@ 2a01:4e0::,2a01:4e7:ffff:ffff:ffff:ffff:ffff:ffff,LV 2a01:4e8::,2a01:4e8:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a01:4f0::,2a01:4f0:ffff:ffff:ffff:ffff:ffff:ffff,DK -2a01:4f8::,2a01:4f8:201:7fff:ffff:ffff:ffff:ffff,DE -2a01:4f8:201:8000::,2a01:4f8:201:ffff:ffff:ffff:ffff:ffff,RU -2a01:4f8:202::,2a01:4ff:ffff:ffff:ffff:ffff:ffff:ffff,DE +2a01:4f8::,2a01:4ff:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a01:500::,2a01:500:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a01:508::,2a01:508:ffff:ffff:ffff:ffff:ffff:ffff,RU 2a01:510::,2a01:510:ffff:ffff:ffff:ffff:ffff:ffff,CZ @@ -19458,7 +19376,7 @@ 2a01:558::,2a01:558:ffff:ffff:ffff:ffff:ffff:ffff,DK 2a01:560::,2a01:567:ffff:ffff:ffff:ffff:ffff:ffff,NO 2a01:568::,2a01:570:ffff:ffff:ffff:ffff:ffff:ffff,GB -2a01:578::,2a01:578:ffff:ffff:ffff:ffff:ffff:ffff,IE +2a01:578::,2a01:578:ffff:ffff:ffff:ffff:ffff:ffff,US 2a01:580::,2a01:580:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a01:590::,2a01:590:ffff:ffff:ffff:ffff:ffff:ffff,RU 2a01:598::,2a01:59f:ffff:ffff:ffff:ffff:ffff:ffff,DE @@ -19533,9 +19451,7 @@ 2a01:7e8::,2a01:7e8:ffff:ffff:ffff:ffff:ffff:ffff,DK 2a01:7f0::,2a01:7f0:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a01:7f8::,2a01:7f8:ffff:ffff:ffff:ffff:ffff:ffff,DE -2a01:800::,2a01:838:fffe:ffff:ffff:ffff:ffff:ffff,DE -2a01:838:ffff::,2a01:838:ffff:7fff:ffff:ffff:ffff:ffff,MT -2a01:838:ffff:8000::,2a01:8ff:ffff:ffff:ffff:ffff:ffff:ffff,DE +2a01:800::,2a01:8ff:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a01:c00::,2a01:c3f:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a01:e00::,2a01:e3f:ffff:ffff:ffff:ffff:ffff:ffff,FR 2a01:1000::,2a01:17ff:ffff:ffff:ffff:ffff:ffff:ffff,PL @@ -20022,6 +19938,7 @@ 2a01:7cc0::,2a01:7cc0:ffff:ffff:ffff:ffff:ffff:ffff,DK 2a01:7ce0::,2a01:7ce0:ffff:ffff:ffff:ffff:ffff:ffff,CZ 2a01:7d00::,2a01:7d00:ffff:ffff:ffff:ffff:ffff:ffff,ES +2a01:7d20::,2a01:7d20:ffff:ffff:ffff:ffff:ffff:ffff,CZ 2a01:7d40::,2a01:7d40:ffff:ffff:ffff:ffff:ffff:ffff,SK 2a01:7d60::,2a01:7d60:ffff:ffff:ffff:ffff:ffff:ffff,HU 2a01:7d80::,2a01:7d80:ffff:ffff:ffff:ffff:ffff:ffff,HU @@ -20129,7 +20046,7 @@ 2a01:8a40::,2a01:8a40:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a01:8a60::,2a01:8a60:ffff:ffff:ffff:ffff:ffff:ffff,PL 2a01:8a80::,2a01:8a80:ffff:ffff:ffff:ffff:ffff:ffff,SK -2a01:8aa0::,2a01:8aa0:ffff:ffff:ffff:ffff:ffff:ffff,GB +2a01:8aa0::,2a01:8aa0:ffff:ffff:ffff:ffff:ffff:ffff,IE 2a01:8ac0::,2a01:8ac0:ffff:ffff:ffff:ffff:ffff:ffff,FR 2a01:8ae0::,2a01:8ae0:ffff:ffff:ffff:ffff:ffff:ffff,NL 2a01:8b00::,2a01:8b00:ffff:ffff:ffff:ffff:ffff:ffff,CH @@ -20140,9 +20057,7 @@ 2a01:8ba0::,2a01:8ba7:ffff:ffff:ffff:ffff:ffff:ffff,PL 2a01:8bc0::,2a01:8bc0:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a01:8be0::,2a01:8be0:ffff:ffff:ffff:ffff:ffff:ffff,NL -2a01:8c00::,2a01:8c00:feff:ffff:ffff:ffff:ffff:ffff,CZ -2a01:8c00:ff00::,2a01:8c00:ff00:7fff:ffff:ffff:ffff:ffff,SK -2a01:8c00:ff00:8000::,2a01:8c00:ff00:82b0:ffff:ffff:ffff:ffff,CZ +2a01:8c00::,2a01:8c00:ff00:82b0:ffff:ffff:ffff:ffff,CZ 2a01:8c00:ff00:82b1::,2a01:8c00:ff00:82b1:ffff:ffff:ffff:ffff,US 2a01:8c00:ff00:82b2::,2a01:8c00:ffff:ffff:ffff:ffff:ffff:ffff,CZ 2a01:8c20::,2a01:8c20:ffff:ffff:ffff:ffff:ffff:ffff,NL @@ -20344,6 +20259,7 @@ 2a01:a500::,2a01:a500:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a01:a520::,2a01:a520:ffff:ffff:ffff:ffff:ffff:ffff,NO 2a01:a540::,2a01:a540:ffff:ffff:ffff:ffff:ffff:ffff,IR +2a01:a560::,2a01:a560:ffff:ffff:ffff:ffff:ffff:ffff,SE 2a01:a580::,2a01:a580:ffff:ffff:ffff:ffff:ffff:ffff,FR 2a01:a5a0::,2a01:a5a0:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a01:a5c0::,2a01:a5c0:ffff:ffff:ffff:ffff:ffff:ffff,GB @@ -20388,6 +20304,7 @@ 2a01:aac0::,2a01:aac0:ffff:ffff:ffff:ffff:ffff:ffff,TR 2a01:aae0::,2a01:aae0:ffff:ffff:ffff:ffff:ffff:ffff,NL 2a01:ab00::,2a01:ab00:ffff:ffff:ffff:ffff:ffff:ffff,IT +2a01:ab20::,2a01:ab20:ffff:ffff:ffff:ffff:ffff:ffff,CH 2a01:ab40::,2a01:ab40:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a01:ab60::,2a01:ab60:ffff:ffff:ffff:ffff:ffff:ffff,FR 2a01:ab80::,2a01:ab80:ffff:ffff:ffff:ffff:ffff:ffff,DE @@ -20483,7 +20400,6 @@ 2a01:b740::,2a01:b740:ffff:ffff:ffff:ffff:ffff:ffff,IE 2a01:b760::,2a01:b760:ffff:ffff:ffff:ffff:ffff:ffff,BG 2a01:b780::,2a01:b780:ffff:ffff:ffff:ffff:ffff:ffff,MK -2a01:b7a0::,2a01:b7a0:ffff:ffff:ffff:ffff:ffff:ffff,IT 2a01:b7c0::,2a01:b7c0:ffff:ffff:ffff:ffff:ffff:ffff,CH 2a01:b7e0::,2a01:b7e0:ffff:ffff:ffff:ffff:ffff:ffff,FR 2a01:b800::,2a01:b800:ffff:ffff:ffff:ffff:ffff:ffff,RS @@ -20571,9 +20487,7 @@ 2a02:a0::,2a02:a0:ffff:ffff:ffff:ffff:ffff:ffff,ES 2a02:a8::,2a02:a8:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a02:b0::,2a02:b0:ffff:ffff:ffff:ffff:ffff:ffff,GB -2a02:b8::,2a02:b8::ffff:ffff:ffff:ffff:ffff,LU -2a02:b8:1::,2a02:b8:1:7fff:ffff:ffff:ffff:ffff,FR -2a02:b8:1:8000::,2a02:b8:ffff:ffff:ffff:ffff:ffff:ffff,LU +2a02:b8::,2a02:b8:ffff:ffff:ffff:ffff:ffff:ffff,LU 2a02:c0::,2a02:c0:ffff:ffff:ffff:ffff:ffff:ffff,NO 2a02:c8::,2a02:c8:ffff:ffff:ffff:ffff:ffff:ffff,BE 2a02:d0::,2a02:d0:ffff:ffff:ffff:ffff:ffff:ffff,RU @@ -20643,8 +20557,7 @@ 2a02:2b8::,2a02:2b8:ffff:ffff:ffff:ffff:ffff:ffff,FR 2a02:2c0::,2a02:2c0:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a02:2c8::,2a02:2c8:ffff:ffff:ffff:ffff:ffff:ffff,NO -2a02:2d8::,2a02:2d8::7fff:ffff:ffff:ffff:ffff,RU -2a02:2d8:0:8000::,2a02:2d8:ffff:ffff:ffff:ffff:ffff:ffff,GB +2a02:2d8::,2a02:2d8:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a02:2e0::,2a02:2e7:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a02:2e8::,2a02:2e8:ffff:ffff:ffff:ffff:ffff:ffff,IT 2a02:2f0::,2a02:2f7:ffff:ffff:ffff:ffff:ffff:ffff,DE @@ -20726,17 +20639,11 @@ 2a02:570::,2a02:570:ffff:ffff:ffff:ffff:ffff:ffff,CZ 2a02:578::,2a02:578:5002:7fff:ffff:ffff:ffff:ffff,BE 2a02:578:5002:8000::,2a02:578:5002:ffff:ffff:ffff:ffff:ffff,RU -2a02:578:5003::,2a02:578:5411:ffff:ffff:ffff:ffff:ffff,BE -2a02:578:5412::,2a02:578:5412:7fff:ffff:ffff:ffff:ffff,RU -2a02:578:5412:8000::,2a02:578:ffff:ffff:ffff:ffff:ffff:ffff,BE -2a02:580::,2a02:580:d3ab:ffff:ffff:ffff:ffff:ffff,GR -2a02:580:d3ac::,2a02:580:d3ac:7fff:ffff:ffff:ffff:ffff,FR -2a02:580:d3ac:8000::,2a02:587:ffff:ffff:ffff:ffff:ffff:ffff,GR +2a02:578:5003::,2a02:578:ffff:ffff:ffff:ffff:ffff:ffff,BE +2a02:580::,2a02:587:ffff:ffff:ffff:ffff:ffff:ffff,GR 2a02:588::,2a02:588:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a02:590::,2a02:597:ffff:ffff:ffff:ffff:ffff:ffff,DE -2a02:598::,2a02:598:1:ffff:ffff:ffff:ffff:ffff,CZ -2a02:598:2::,2a02:598:2:7fff:ffff:ffff:ffff:ffff,GB -2a02:598:2:8000::,2a02:598:ffff:ffff:ffff:ffff:ffff:ffff,CZ +2a02:598::,2a02:598:ffff:ffff:ffff:ffff:ffff:ffff,CZ 2a02:5a0::,2a02:5a0:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a02:5b0::,2a02:5b0:ffff:ffff:ffff:ffff:ffff:ffff,NL 2a02:5b8::,2a02:5b8:ffff:ffff:ffff:ffff:ffff:ffff,GB @@ -20768,8 +20675,7 @@ 2a02:6a0::,2a02:6a0:ffff:ffff:ffff:ffff:ffff:ffff,CH 2a02:6a8::,2a02:6a8:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a02:6b0::,2a02:6b0:ffff:ffff:ffff:ffff:ffff:ffff,RU -2a02:6b8::,2a02:6b8::29ff:ffff:ffff:ffff:ffff,RU -2a02:6b8:0:2a00::,2a02:6b8::2bff:ffff:ffff:ffff:ffff,TR +2a02:6b8::,2a02:6b8::2bff:ffff:ffff:ffff:ffff,RU 2a02:6b8:0:2c00::,2a02:6b8::2fff:ffff:ffff:ffff:ffff,UA 2a02:6b8:0:3000::,2a02:6b8:ffff:ffff:ffff:ffff:ffff:ffff,RU 2a02:6c0::,2a02:6c0:ffff:ffff:ffff:ffff:ffff:ffff,DK @@ -20906,16 +20812,13 @@ 2a02:ae0::,2a02:ae0:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a02:ae8::,2a02:aef:ffff:ffff:ffff:ffff:ffff:ffff,SE 2a02:af0::,2a02:af0:ffff:ffff:ffff:ffff:ffff:ffff,AT -2a02:af8::,2a02:af8:dad9:ffff:ffff:ffff:ffff:ffff,GB -2a02:af8:dada::,2a02:af8:dada:7fff:ffff:ffff:ffff:ffff,IT -2a02:af8:dada:8000::,2a02:af8:ffff:ffff:ffff:ffff:ffff:ffff,GB +2a02:af8::,2a02:af8:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a02:b00::,2a02:b00:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a02:b08::,2a02:b0f:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a02:b10::,2a02:b10:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a02:b18::,2a02:b18:ffff:ffff:ffff:ffff:ffff:ffff,AT 2a02:b20::,2a02:b20:ffff:ffff:ffff:ffff:ffff:ffff,CZ -2a02:b28::,2a02:b28:ffff:ffff:ffff:ffff:ffff:ffff,DE -2a02:b30::,2a02:b30:ffff:ffff:ffff:ffff:ffff:ffff,DE +2a02:b28::,2a02:b30:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a02:b48::,2a02:b48:ff:ffff:ffff:ffff:ffff:ffff,US 2a02:b48:100::,2a02:b4f:ffff:ffff:ffff:ffff:ffff:ffff,NL 2a02:b50::,2a02:b50:ffff:ffff:ffff:ffff:ffff:ffff,GB @@ -21059,7 +20962,9 @@ 2a02:fe8::,2a02:fe9:ffff:ffff:ffff:ffff:ffff:ffff,NL 2a02:ff0::,2a02:ff0:ffff:ffff:ffff:ffff:ffff:ffff,TR 2a02:1000::,2a02:103f:ffff:ffff:ffff:ffff:ffff:ffff,DE -2a02:1200::,2a02:121f:ffff:ffff:ffff:ffff:ffff:ffff,CH +2a02:1200::,2a02:1205:5004:7fff:ffff:ffff:ffff:ffff,CH +2a02:1205:5004:8000::,2a02:1205:5004:ffff:ffff:ffff:ffff:ffff,IT +2a02:1205:5005::,2a02:121f:ffff:ffff:ffff:ffff:ffff:ffff,CH 2a02:1300::,2a02:1300:ffff:ffff:ffff:ffff:ffff:ffff,IS 2a02:1308::,2a02:1308:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a02:1310::,2a02:1310:ffff:ffff:ffff:ffff:ffff:ffff,GB @@ -21138,9 +21043,11 @@ 2a02:1770::,2a02:1770:ffff:ffff:ffff:ffff:ffff:ffff,PL 2a02:1778::,2a02:1778:ffff:ffff:ffff:ffff:ffff:ffff,PL 2a02:1780::,2a02:1780:ffff:ffff:ffff:ffff:ffff:ffff,SE -2a02:1788::,2a02:1788:4ff:7fff:ffff:ffff:ffff:ffff,GB -2a02:1788:4ff:8000::,2a02:1788:4ff:ffff:ffff:ffff:ffff:ffff,US -2a02:1788:500::,2a02:1788:ffff:ffff:ffff:ffff:ffff:ffff,GB +2a02:1788::,2a02:1788:4fe:ffff:ffff:ffff:ffff:ffff,GB +2a02:1788:4ff::,2a02:1788:4ff:7fff:ffff:ffff:ffff:ffff,RO +2a02:1788:4ff:8000::,2a02:1788:4ff:83ff:ffff:ffff:ffff:ffff,GB +2a02:1788:4ff:8400::,2a02:1788:4ff:84ff:ffff:ffff:ffff:ffff,US +2a02:1788:4ff:8500::,2a02:1788:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a02:1790::,2a02:1790:ffff:ffff:ffff:ffff:ffff:ffff,FI 2a02:1798::,2a02:179f:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a02:17a0::,2a02:17a0:ffff:ffff:ffff:ffff:ffff:ffff,CZ @@ -21389,7 +21296,7 @@ 2a02:27a0::,2a02:27a0:ffff:ffff:ffff:ffff:ffff:ffff,RU 2a02:27a8::,2a02:27af:ffff:ffff:ffff:ffff:ffff:ffff,UA 2a02:27b0::,2a02:27b0:ffff:ffff:ffff:ffff:ffff:ffff,BA -2a02:27b8::,2a02:27b8:ffff:ffff:ffff:ffff:ffff:ffff,NO +2a02:27b8::,2a02:27bf:ffff:ffff:ffff:ffff:ffff:ffff,NO 2a02:27c0::,2a02:27c0:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a02:27c8::,2a02:27c8:ffff:ffff:ffff:ffff:ffff:ffff,NL 2a02:27d0::,2a02:27d0:ffff:ffff:ffff:ffff:ffff:ffff,FR @@ -21401,9 +21308,7 @@ 2a02:2800::,2a02:2800:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a02:2808::,2a02:2808:1005:ffff:ffff:ffff:ffff:ffff,CZ 2a02:2808:1006::,2a02:2808:1006:ffff:ffff:ffff:ffff:ffff,RU -2a02:2808:1007::,2a02:2808:2800:ffff:ffff:ffff:ffff:ffff,CZ -2a02:2808:2801::,2a02:2808:2801:7fff:ffff:ffff:ffff:ffff,RU -2a02:2808:2801:8000::,2a02:2808:3000:ffff:ffff:ffff:ffff:ffff,CZ +2a02:2808:1007::,2a02:2808:3000:ffff:ffff:ffff:ffff:ffff,CZ 2a02:2808:3001::,2a02:2808:3001:ffff:ffff:ffff:ffff:ffff,RU 2a02:2808:3002::,2a02:2808:5300:ffff:ffff:ffff:ffff:ffff,CZ 2a02:2808:5301::,2a02:2808:5301:ffff:ffff:ffff:ffff:ffff,RU @@ -21538,9 +21443,7 @@ 2a02:2dc0::,2a02:2dc0:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a02:2de0::,2a02:2de0:ffff:ffff:ffff:ffff:ffff:ffff,PL 2a02:2e00::,2a02:2e1f:ffff:ffff:ffff:ffff:ffff:ffff,ES -2a02:2f00::,2a02:2f0b:804c:ffff:ffff:ffff:ffff:ffff,RO -2a02:2f0b:804d::,2a02:2f0b:804d:7fff:ffff:ffff:ffff:ffff,FR -2a02:2f0b:804d:8000::,2a02:2f0f:ffff:ffff:ffff:ffff:ffff:ffff,RO +2a02:2f00::,2a02:2f0f:ffff:ffff:ffff:ffff:ffff:ffff,RO 2a02:2f80::,2a02:2f80:ffff:ffff:ffff:ffff:ffff:ffff,ES 2a02:2fc0::,2a02:2fc7:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a02:2fe0::,2a02:2fe0:ffff:ffff:ffff:ffff:ffff:ffff,IT @@ -21575,6 +21478,7 @@ 2a02:4360::,2a02:4360:ffff:ffff:ffff:ffff:ffff:ffff,PL 2a02:4380::,2a02:4380:ffff:ffff:ffff:ffff:ffff:ffff,AZ 2a02:43a0::,2a02:43a0:ffff:ffff:ffff:ffff:ffff:ffff,IQ +2a02:43c0::,2a02:43c0:ffff:ffff:ffff:ffff:ffff:ffff,RU 2a02:43e0::,2a02:43e0:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a02:4400::,2a02:4400:ffff:ffff:ffff:ffff:ffff:ffff,KZ 2a02:4420::,2a02:4420:ffff:ffff:ffff:ffff:ffff:ffff,ES @@ -21664,6 +21568,7 @@ 2a02:4f20::,2a02:4f20:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a02:4f40::,2a02:4f40:ffff:ffff:ffff:ffff:ffff:ffff,RU 2a02:4f60::,2a02:4f67:ffff:ffff:ffff:ffff:ffff:ffff,GB +2a02:4f80::,2a02:4f80:ffff:ffff:ffff:ffff:ffff:ffff,NL 2a02:4fa0::,2a02:4fa0:ffff:ffff:ffff:ffff:ffff:ffff,IS 2a02:4fc0::,2a02:4fc0:ffff:ffff:ffff:ffff:ffff:ffff,GR 2a02:4fe0::,2a02:4fe0:ffff:ffff:ffff:ffff:ffff:ffff,CH @@ -21906,7 +21811,6 @@ 2a02:6da0::,2a02:6da0:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a02:6dc0::,2a02:6dc0:ffff:ffff:ffff:ffff:ffff:ffff,PL 2a02:6de0::,2a02:6de0:ffff:ffff:ffff:ffff:ffff:ffff,DE -2a02:6e00:1::,2a02:6e00:1:7fff:ffff:ffff:ffff:ffff,RO 2a02:6e20::,2a02:6e20:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a02:6e40::,2a02:6e40:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a02:6e60::,2a02:6e60:ffff:ffff:ffff:ffff:ffff:ffff,RU @@ -22059,17 +21963,13 @@ 2a02:8200::,2a02:821f:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a02:8300::,2a02:830f:ffff:ffff:ffff:ffff:ffff:ffff,CZ 2a02:8380::,2a02:838f:ffff:ffff:ffff:ffff:ffff:ffff,AT -2a02:8400::,2a02:8434:2543:ffff:ffff:ffff:ffff:ffff,FR -2a02:8434:2544::,2a02:8434:2544:7fff:ffff:ffff:ffff:ffff,ES -2a02:8434:2544:8000::,2a02:847f:ffff:ffff:ffff:ffff:ffff:ffff,FR +2a02:8400::,2a02:847f:ffff:ffff:ffff:ffff:ffff:ffff,FR 2a02:8800::,2a02:88ff:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a02:9000::,2a02:91ff:ffff:ffff:ffff:ffff:ffff:ffff,ES 2a02:a000::,2a02:a03f:ffff:ffff:ffff:ffff:ffff:ffff,BE 2a02:a200::,2a02:a21f:ffff:ffff:ffff:ffff:ffff:ffff,NL 2a02:a300::,2a02:a31f:ffff:ffff:ffff:ffff:ffff:ffff,PL -2a02:a400::,2a02:a44f:7982:ffff:ffff:ffff:ffff:ffff,NL -2a02:a44f:7983::,2a02:a44f:7983:7fff:ffff:ffff:ffff:ffff,DE -2a02:a44f:7983:8000::,2a02:a47f:ffff:ffff:ffff:ffff:ffff:ffff,NL +2a02:a400::,2a02:a47f:ffff:ffff:ffff:ffff:ffff:ffff,NL 2a02:a800::,2a02:a83f:ffff:ffff:ffff:ffff:ffff:ffff,ES 2a02:aa00::,2a02:aa1f:ffff:ffff:ffff:ffff:ffff:ffff,CH 2a02:ab00::,2a02:ab07:ffff:ffff:ffff:ffff:ffff:ffff,SK @@ -22117,11 +22017,7 @@ 2a02:c540::,2a02:c547:ffff:ffff:ffff:ffff:ffff:ffff,IT 2a02:c580::,2a02:c587:ffff:ffff:ffff:ffff:ffff:ffff,IR 2a02:c5c0::,2a02:c5c7:ffff:ffff:ffff:ffff:ffff:ffff,FI -2a02:c600::,2a02:c600:ff:ffff:ffff:ffff:ffff:ffff,CH -2a02:c600:100::,2a02:c600:100:7fff:ffff:ffff:ffff:ffff,CZ -2a02:c600:100:8000::,2a02:c600:100:ffff:ffff:ffff:ffff:ffff,CH -2a02:c600:101::,2a02:c600:101:7fff:ffff:ffff:ffff:ffff,CZ -2a02:c600:101:8000::,2a02:c607:ffff:ffff:ffff:ffff:ffff:ffff,CH +2a02:c600::,2a02:c607:ffff:ffff:ffff:ffff:ffff:ffff,CH 2a02:c640::,2a02:c647:ffff:ffff:ffff:ffff:ffff:ffff,HU 2a02:c680::,2a02:c681:ffff:ffff:ffff:ffff:ffff:ffff,IT 2a02:c690::,2a02:c691:ffff:ffff:ffff:ffff:ffff:ffff,AD @@ -22343,6 +22239,8 @@ 2a02:f9c0::,2a02:f9c7:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a02:fa00::,2a02:fa07:ffff:ffff:ffff:ffff:ffff:ffff,SA 2a02:fa40::,2a02:fa47:ffff:ffff:ffff:ffff:ffff:ffff,TR +2a02:fa80::,2a02:fa80:ffff:ffff:ffff:ffff:ffff:ffff,GR +2a02:faa0::,2a02:faa0:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a02:fb00::,2a02:fb07:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a02:fb40::,2a02:fb47:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a02:fb80::,2a02:fb87:ffff:ffff:ffff:ffff:ffff:ffff,IT @@ -22630,7 +22528,6 @@ 2a03:2060::,2a03:2060:ffff:ffff:ffff:ffff:ffff:ffff,CH 2a03:2080::,2a03:2080:ffff:ffff:ffff:ffff:ffff:ffff,NL 2a03:20a0::,2a03:20a0:ffff:ffff:ffff:ffff:ffff:ffff,GB -2a03:20c0::,2a03:20c0:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a03:20e0::,2a03:20e0:ffff:ffff:ffff:ffff:ffff:ffff,NO 2a03:2100::,2a03:2100:ffff:ffff:ffff:ffff:ffff:ffff,TR 2a03:2120::,2a03:2120:ffff:ffff:ffff:ffff:ffff:ffff,CH @@ -22647,7 +22544,7 @@ 2a03:2280::,2a03:2280:ffff:ffff:ffff:ffff:ffff:ffff,NL 2a03:22a0::,2a03:22a0:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a03:22c0::,2a03:22c0:ffff:ffff:ffff:ffff:ffff:ffff,PL -2a03:22e0::,2a03:22e0:ffff:ffff:ffff:ffff:ffff:ffff,NL +2a03:22e0::,2a03:22e7:ffff:ffff:ffff:ffff:ffff:ffff,NL 2a03:2300::,2a03:2307:ffff:ffff:ffff:ffff:ffff:ffff,AM 2a03:2320::,2a03:2320:ffff:ffff:ffff:ffff:ffff:ffff,CZ 2a03:2340::,2a03:2340:ffff:ffff:ffff:ffff:ffff:ffff,IT @@ -22670,6 +22567,7 @@ 2a03:2560::,2a03:2560:ffff:ffff:ffff:ffff:ffff:ffff,MK 2a03:2580::,2a03:2580:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a03:25a0::,2a03:25a0:ffff:ffff:ffff:ffff:ffff:ffff,NO +2a03:25c0::,2a03:25c0:ffff:ffff:ffff:ffff:ffff:ffff,FR 2a03:25e0::,2a03:25e0:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a03:2600::,2a03:2600:ffff:ffff:ffff:ffff:ffff:ffff,CH 2a03:2620::,2a03:2620:ffff:ffff:ffff:ffff:ffff:ffff,TR @@ -22677,6 +22575,7 @@ 2a03:2660::,2a03:2660:ffff:ffff:ffff:ffff:ffff:ffff,RS 2a03:2680::,2a03:2680:ffff:ffff:ffff:ffff:ffff:ffff,FR 2a03:26a0::,2a03:26a0:ffff:ffff:ffff:ffff:ffff:ffff,ES +2a03:26c0::,2a03:26c0:ffff:ffff:ffff:ffff:ffff:ffff,RU 2a03:26e0::,2a03:26e0:ffff:ffff:ffff:ffff:ffff:ffff,RU 2a03:2700::,2a03:2700:ffff:ffff:ffff:ffff:ffff:ffff,IT 2a03:2720::,2a03:2720:ffff:ffff:ffff:ffff:ffff:ffff,DE @@ -22723,6 +22622,7 @@ 2a03:2a80::,2a03:2a80:ffff:ffff:ffff:ffff:ffff:ffff,CZ 2a03:2aa0::,2a03:2aa0:ffff:ffff:ffff:ffff:ffff:ffff,AE 2a03:2ac0::,2a03:2ac0:ffff:ffff:ffff:ffff:ffff:ffff,GB +2a03:2ae0::,2a03:2ae0:ffff:ffff:ffff:ffff:ffff:ffff,BE 2a03:2b00::,2a03:2b00:ffff:ffff:ffff:ffff:ffff:ffff,IT 2a03:2b20::,2a03:2b20:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a03:2b40::,2a03:2b40:ffff:ffff:ffff:ffff:ffff:ffff,RU @@ -22992,7 +22892,8 @@ 2a03:4a80:8::,2a03:4a80:8:ffff:ffff:ffff:ffff:ffff,TR 2a03:4a80:9::,2a03:4a80:9:ffff:ffff:ffff:ffff:ffff,UA 2a03:4a80:a::,2a03:4a80:a:ffff:ffff:ffff:ffff:ffff,MX -2a03:4a80:b::,2a03:4a80:fffe:ffff:ffff:ffff:ffff:ffff,NL +2a03:4a80:b::,2a03:4a80:b:ffff:ffff:ffff:ffff:ffff,AE +2a03:4a80:c::,2a03:4a80:fffe:ffff:ffff:ffff:ffff:ffff,NL 2a03:4a80:ffff::,2a03:4a80:ffff:7fff:ffff:ffff:ffff:ffff,US 2a03:4a80:ffff:8000::,2a03:4a80:ffff:ffff:ffff:ffff:ffff:ffff,NL 2a03:4aa0::,2a03:4aa0:ffff:ffff:ffff:ffff:ffff:ffff,NL @@ -23312,6 +23213,7 @@ 2a03:7340::,2a03:7340:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a03:7360::,2a03:7367:ffff:ffff:ffff:ffff:ffff:ffff,SE 2a03:7380::,2a03:7380:ffff:ffff:ffff:ffff:ffff:ffff,UA +2a03:73a0::,2a03:73a7:ffff:ffff:ffff:ffff:ffff:ffff,NL 2a03:73c0::,2a03:73c0:ffff:ffff:ffff:ffff:ffff:ffff,PT 2a03:73e0::,2a03:73e0:ffff:ffff:ffff:ffff:ffff:ffff,RU 2a03:7400::,2a03:7400:ffff:ffff:ffff:ffff:ffff:ffff,DK @@ -23675,7 +23577,7 @@ 2a03:a0e0::,2a03:a0e0:ffff:ffff:ffff:ffff:ffff:ffff,RU 2a03:a100::,2a03:a100:ffff:ffff:ffff:ffff:ffff:ffff,SI 2a03:a120::,2a03:a120:ffff:ffff:ffff:ffff:ffff:ffff,AE -2a03:a140::,2a03:a140:ffff:ffff:ffff:ffff:ffff:ffff,FR +2a03:a140::,2a03:a140:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a03:a160::,2a03:a160:ffff:ffff:ffff:ffff:ffff:ffff,AT 2a03:a180::,2a03:a180:ffff:ffff:ffff:ffff:ffff:ffff,RU 2a03:a1a0::,2a03:a1a0:ffff:ffff:ffff:ffff:ffff:ffff,BE @@ -23695,23 +23597,40 @@ 2a03:a380::,2a03:a380:ffff:ffff:ffff:ffff:ffff:ffff,IT 2a03:a3a0::,2a03:a3a0:ffff:ffff:ffff:ffff:ffff:ffff,NL 2a03:a3c0::,2a03:a3c0:ffff:ffff:ffff:ffff:ffff:ffff,IT +2a03:a3e0::,2a03:a3e0:ffff:ffff:ffff:ffff:ffff:ffff,LB 2a03:a400::,2a03:a400:ffff:ffff:ffff:ffff:ffff:ffff,RU +2a03:a420::,2a03:a420:ffff:ffff:ffff:ffff:ffff:ffff,ES 2a03:a440::,2a03:a440:ffff:ffff:ffff:ffff:ffff:ffff,ES +2a03:a460::,2a03:a460:ffff:ffff:ffff:ffff:ffff:ffff,TR 2a03:a480::,2a03:a480:ffff:ffff:ffff:ffff:ffff:ffff,DK +2a03:a4a0::,2a03:a4a0:ffff:ffff:ffff:ffff:ffff:ffff,RU 2a03:a4c0::,2a03:a4c0:ffff:ffff:ffff:ffff:ffff:ffff,GB +2a03:a4e0::,2a03:a4e0:ffff:ffff:ffff:ffff:ffff:ffff,NO 2a03:a500::,2a03:a500:ffff:ffff:ffff:ffff:ffff:ffff,IT +2a03:a520::,2a03:a520:ffff:ffff:ffff:ffff:ffff:ffff,IT 2a03:a540::,2a03:a540:ffff:ffff:ffff:ffff:ffff:ffff,DE +2a03:a560::,2a03:a560:ffff:ffff:ffff:ffff:ffff:ffff,DK 2a03:a580::,2a03:a580:ffff:ffff:ffff:ffff:ffff:ffff,FR +2a03:a5a0::,2a03:a5a0:ffff:ffff:ffff:ffff:ffff:ffff,TR 2a03:a5c0::,2a03:a5c0:ffff:ffff:ffff:ffff:ffff:ffff,GB +2a03:a5e0::,2a03:a5e0:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a03:a600::,2a03:a600:ffff:ffff:ffff:ffff:ffff:ffff,UA +2a03:a620::,2a03:a620:ffff:ffff:ffff:ffff:ffff:ffff,FR 2a03:a640::,2a03:a640:ffff:ffff:ffff:ffff:ffff:ffff,FR +2a03:a660::,2a03:a660:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a03:a680::,2a03:a680:ffff:ffff:ffff:ffff:ffff:ffff,ES 2a03:a6c0::,2a03:a6c0:ffff:ffff:ffff:ffff:ffff:ffff,IT +2a03:a6e0::,2a03:a6e0:ffff:ffff:ffff:ffff:ffff:ffff,FR 2a03:a700::,2a03:a700:ffff:ffff:ffff:ffff:ffff:ffff,IT +2a03:a720::,2a03:a727:ffff:ffff:ffff:ffff:ffff:ffff,FR 2a03:a740::,2a03:a740:ffff:ffff:ffff:ffff:ffff:ffff,ES +2a03:a760::,2a03:a760:ffff:ffff:ffff:ffff:ffff:ffff,BG 2a03:a780::,2a03:a780:ffff:ffff:ffff:ffff:ffff:ffff,CZ +2a03:a7a0::,2a03:a7a0:ffff:ffff:ffff:ffff:ffff:ffff,RU 2a03:a7c0::,2a03:a7c0:ffff:ffff:ffff:ffff:ffff:ffff,RU +2a03:a7e0::,2a03:a7e7:ffff:ffff:ffff:ffff:ffff:ffff,IT 2a03:a800::,2a03:a800:ffff:ffff:ffff:ffff:ffff:ffff,BE +2a03:a820::,2a03:a820:ffff:ffff:ffff:ffff:ffff:ffff,CZ 2a03:a840::,2a03:a840:ffff:ffff:ffff:ffff:ffff:ffff,UA 2a03:a880::,2a03:a880:ffff:ffff:ffff:ffff:ffff:ffff,SE 2a03:a8c0::,2a03:a8c0:ffff:ffff:ffff:ffff:ffff:ffff,FR @@ -23726,6 +23645,7 @@ 2a03:ab00::,2a03:ab00:ffff:ffff:ffff:ffff:ffff:ffff,CZ 2a03:ab40::,2a03:ab40:ffff:ffff:ffff:ffff:ffff:ffff,AT 2a03:ab80::,2a03:ab80:ffff:ffff:ffff:ffff:ffff:ffff,ES +2a03:abc0::,2a03:abc0:ffff:ffff:ffff:ffff:ffff:ffff,NL 2a03:ac00::,2a03:ac00:ffff:ffff:ffff:ffff:ffff:ffff,FR 2a03:ac40::,2a03:ac40:ffff:ffff:ffff:ffff:ffff:ffff,CH 2a03:ac80::,2a03:ac80:ffff:ffff:ffff:ffff:ffff:ffff,SE @@ -23734,6 +23654,7 @@ 2a03:ad40::,2a03:ad40:ffff:ffff:ffff:ffff:ffff:ffff,FR 2a03:ad80::,2a03:ad80:ffff:ffff:ffff:ffff:ffff:ffff,ES 2a03:adc0::,2a03:adc0:ffff:ffff:ffff:ffff:ffff:ffff,TR +2a03:ae00::,2a03:ae00:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a03:ae40::,2a03:ae40:ffff:ffff:ffff:ffff:ffff:ffff,PL 2a03:ae80::,2a03:ae80:ffff:ffff:ffff:ffff:ffff:ffff,ES 2a03:aec0::,2a03:aec0:ffff:ffff:ffff:ffff:ffff:ffff,NL @@ -23914,6 +23835,7 @@ 2a03:d900::,2a03:d900:ffff:ffff:ffff:ffff:ffff:ffff,SE 2a03:d940::,2a03:d940:ffff:ffff:ffff:ffff:ffff:ffff,FR 2a03:d980::,2a03:d980:ffff:ffff:ffff:ffff:ffff:ffff,DE +2a03:d9c0::,2a03:d9c0:ffff:ffff:ffff:ffff:ffff:ffff,CZ 2a03:da00::,2a03:da00:ffff:ffff:ffff:ffff:ffff:ffff,HU 2a03:da40::,2a03:da40:ffff:ffff:ffff:ffff:ffff:ffff,CH 2a03:da80::,2a03:da80:ffff:ffff:ffff:ffff:ffff:ffff,AT @@ -24240,7 +24162,6 @@ 2a04:2b00::,2a04:2b07:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a04:2b40::,2a04:2b47:ffff:ffff:ffff:ffff:ffff:ffff,PL 2a04:2b80::,2a04:2b87:ffff:ffff:ffff:ffff:ffff:ffff,RO -2a04:2bc0::,2a04:2bc7:ffff:ffff:ffff:ffff:ffff:ffff,FR 2a04:2c00::,2a04:2c07:ffff:ffff:ffff:ffff:ffff:ffff,UA 2a04:2c40:7::,2a04:2c40:7:7fff:ffff:ffff:ffff:ffff,FR 2a04:2c80::,2a04:2c87:ffff:ffff:ffff:ffff:ffff:ffff,UA @@ -24578,6 +24499,7 @@ 2a04:7ec0::,2a04:7ec7:ffff:ffff:ffff:ffff:ffff:ffff,ES 2a04:7f00::,2a04:7f07:ffff:ffff:ffff:ffff:ffff:ffff,BE 2a04:7f40::,2a04:7f47:ffff:ffff:ffff:ffff:ffff:ffff,NO +2a04:7f80::,2a04:7f87:ffff:ffff:ffff:ffff:ffff:ffff,QA 2a04:7fc0::,2a04:7fc7:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a04:8000::,2a04:8007:ffff:ffff:ffff:ffff:ffff:ffff,UA 2a04:8040::,2a04:8047:ffff:ffff:ffff:ffff:ffff:ffff,FR @@ -24765,8 +24687,7 @@ 2a04:acc0::,2a04:acc7:ffff:ffff:ffff:ffff:ffff:ffff,IR 2a04:ad00::,2a04:ad07:ffff:ffff:ffff:ffff:ffff:ffff,IQ 2a04:ad40::,2a04:ad47:ffff:ffff:ffff:ffff:ffff:ffff,FI -2a04:ad80::,2a04:ad80::7fff:ffff:ffff:ffff:ffff,NL -2a04:ad80:0:8000::,2a04:ad87:ffff:ffff:ffff:ffff:ffff:ffff,GB +2a04:ad80::,2a04:ad87:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a04:adc0::,2a04:adc7:ffff:ffff:ffff:ffff:ffff:ffff,RU 2a04:ae00::,2a04:ae3f:ffff:ffff:ffff:ffff:ffff:ffff,SE 2a04:b000::,2a04:b007:ffff:ffff:ffff:ffff:ffff:ffff,GB @@ -24857,6 +24778,7 @@ 2a04:c600::,2a04:c607:ffff:ffff:ffff:ffff:ffff:ffff,NL 2a04:c640::,2a04:c647:ffff:ffff:ffff:ffff:ffff:ffff,IT 2a04:c680::,2a04:c687:ffff:ffff:ffff:ffff:ffff:ffff,GB +2a04:c6c0::,2a04:c6c7:ffff:ffff:ffff:ffff:ffff:ffff,SE 2a04:c700::,2a04:c707:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a04:c740::,2a04:c747:ffff:ffff:ffff:ffff:ffff:ffff,CZ 2a04:c780::,2a04:c787:ffff:ffff:ffff:ffff:ffff:ffff,NL @@ -24915,6 +24837,7 @@ 2a04:d4c0::,2a04:d4c7:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a04:d500::,2a04:d507:ffff:ffff:ffff:ffff:ffff:ffff,FI 2a04:d540::,2a04:d547:ffff:ffff:ffff:ffff:ffff:ffff,AT +2a04:d580::,2a04:d587:ffff:ffff:ffff:ffff:ffff:ffff,SA 2a04:d5c0::,2a04:d5c7:ffff:ffff:ffff:ffff:ffff:ffff,IE 2a04:d600::,2a04:d607:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a04:d640::,2a04:d647:ffff:ffff:ffff:ffff:ffff:ffff,IE @@ -24972,6 +24895,7 @@ 2a04:e340::,2a04:e347:ffff:ffff:ffff:ffff:ffff:ffff,AE 2a04:e380::,2a04:e387:ffff:ffff:ffff:ffff:ffff:ffff,RU 2a04:e3c0::,2a04:e3c7:ffff:ffff:ffff:ffff:ffff:ffff,DK +2a04:e400::,2a04:e407:ffff:ffff:ffff:ffff:ffff:ffff,NL 2a04:e440::,2a04:e447:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a04:e480::,2a04:e487:ffff:ffff:ffff:ffff:ffff:ffff,IT 2a04:e4c0:10::,2a04:e4c0:10:ffff:ffff:ffff:ffff:ffff,GB @@ -25009,6 +24933,7 @@ 2a04:eac0::,2a04:eac7:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a04:eb00::,2a04:eb07:ffff:ffff:ffff:ffff:ffff:ffff,LT 2a04:eb40::,2a04:eb47:ffff:ffff:ffff:ffff:ffff:ffff,AL +2a04:eb80::,2a04:eb87:ffff:ffff:ffff:ffff:ffff:ffff,RS 2a04:ebc0::,2a04:ebc7:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a04:ec00::,2a04:ec01:ffff:ffff:ffff:ffff:ffff:ffff,NL 2a04:ec10::,2a04:ec11:ffff:ffff:ffff:ffff:ffff:ffff,GB @@ -25055,6 +24980,8 @@ 2a04:f5c0::,2a04:f5c7:ffff:ffff:ffff:ffff:ffff:ffff,IT 2a04:f600::,2a04:f607:ffff:ffff:ffff:ffff:ffff:ffff,FR 2a04:f680::,2a04:f687:ffff:ffff:ffff:ffff:ffff:ffff,AT +2a04:f6c0::,2a04:f6c7:ffff:ffff:ffff:ffff:ffff:ffff,DE +2a04:f700::,2a04:f707:ffff:ffff:ffff:ffff:ffff:ffff,PL 2a04:f740::,2a04:f747:ffff:ffff:ffff:ffff:ffff:ffff,NL 2a04:f780::,2a04:f787:ffff:ffff:ffff:ffff:ffff:ffff,IN 2a04:f7c0::,2a04:f7c7:ffff:ffff:ffff:ffff:ffff:ffff,NL @@ -25092,6 +25019,7 @@ 2a04:ff80::,2a04:ff87:ffff:ffff:ffff:ffff:ffff:ffff,BA 2a04:ffc0::,2a04:ffc7:ffff:ffff:ffff:ffff:ffff:ffff,HU 2a05::,2a05:7:ffff:ffff:ffff:ffff:ffff:ffff,BE +2a05:40::,2a05:47:ffff:ffff:ffff:ffff:ffff:ffff,IT 2a05:80::,2a05:87:ffff:ffff:ffff:ffff:ffff:ffff,CH 2a05:c0::,2a05:c7:ffff:ffff:ffff:ffff:ffff:ffff,DK 2a05:100::,2a05:107:ffff:ffff:ffff:ffff:ffff:ffff,GB @@ -25104,7 +25032,6 @@ 2a05:300::,2a05:307:ffff:ffff:ffff:ffff:ffff:ffff,TR 2a05:340::,2a05:347:ffff:ffff:ffff:ffff:ffff:ffff,ES 2a05:380::,2a05:387:ffff:ffff:ffff:ffff:ffff:ffff,DE -2a05:3c0::,2a05:3c7:ffff:ffff:ffff:ffff:ffff:ffff,FR 2a05:400::,2a05:407:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a05:440::,2a05:447:ffff:ffff:ffff:ffff:ffff:ffff,PL 2a05:480::,2a05:487:ffff:ffff:ffff:ffff:ffff:ffff,UA @@ -25138,10 +25065,12 @@ 2a05:b80::,2a05:b87:ffff:ffff:ffff:ffff:ffff:ffff,RU 2a05:bc0::,2a05:bc7:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a05:c00::,2a05:c07:ffff:ffff:ffff:ffff:ffff:ffff,NO +2a05:c40::,2a05:c47:ffff:ffff:ffff:ffff:ffff:ffff,NL 2a05:c80::,2a05:c87:ffff:ffff:ffff:ffff:ffff:ffff,ES 2a05:cc0::,2a05:cc7:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a05:d00::,2a05:d07:ffff:ffff:ffff:ffff:ffff:ffff,CH 2a05:d40::,2a05:d47:ffff:ffff:ffff:ffff:ffff:ffff,FR +2a05:d80::,2a05:d87:ffff:ffff:ffff:ffff:ffff:ffff,FR 2a05:dc0::,2a05:dc7:ffff:ffff:ffff:ffff:ffff:ffff,ES 2a05:e00::,2a05:e07:ffff:ffff:ffff:ffff:ffff:ffff,FR 2a05:e40::,2a05:e47:ffff:ffff:ffff:ffff:ffff:ffff,AT @@ -25201,12 +25130,15 @@ 2a05:1d80::,2a05:1d87:ffff:ffff:ffff:ffff:ffff:ffff,TR 2a05:1dc0::,2a05:1dc7:ffff:ffff:ffff:ffff:ffff:ffff,IE 2a05:1e00::,2a05:1e07:ffff:ffff:ffff:ffff:ffff:ffff,CH +2a05:1e40::,2a05:1e47:ffff:ffff:ffff:ffff:ffff:ffff,FR +2a05:1e80::,2a05:1e87:ffff:ffff:ffff:ffff:ffff:ffff,NL 2a05:1ec0::,2a05:1ec7:ffff:ffff:ffff:ffff:ffff:ffff,FR 2a05:1f00::,2a05:1f07:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a05:1f40::,2a05:1f47:ffff:ffff:ffff:ffff:ffff:ffff,FI 2a05:1f80::,2a05:1f87:ffff:ffff:ffff:ffff:ffff:ffff,BA 2a05:1fc0::,2a05:1fc7:ffff:ffff:ffff:ffff:ffff:ffff,RO 2a05:2000::,2a05:2007:ffff:ffff:ffff:ffff:ffff:ffff,SE +2a05:2040::,2a05:2047:ffff:ffff:ffff:ffff:ffff:ffff,ES 2a05:2080::,2a05:2087:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a05:20c0::,2a05:20c7:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a05:2100::,2a05:2107:ffff:ffff:ffff:ffff:ffff:ffff,CZ @@ -25214,11 +25146,7 @@ 2a05:2180::,2a05:2187:ffff:ffff:ffff:ffff:ffff:ffff,TM 2a05:21c0::,2a05:21c7:ffff:ffff:ffff:ffff:ffff:ffff,SE 2a05:2200::,2a05:2207:ffff:ffff:ffff:ffff:ffff:ffff,NL -2a05:2240::,2a05:2242:436:ffff:ffff:ffff:ffff:ffff,SE -2a05:2242:437::,2a05:2242:437:7fff:ffff:ffff:ffff:ffff,NO -2a05:2242:437:8000::,2a05:2242:437:ffff:ffff:ffff:ffff:ffff,SE -2a05:2242:438::,2a05:2242:438:7fff:ffff:ffff:ffff:ffff,NO -2a05:2242:438:8000::,2a05:2247:ffff:ffff:ffff:ffff:ffff:ffff,SE +2a05:2240::,2a05:2247:ffff:ffff:ffff:ffff:ffff:ffff,SE 2a05:2280::,2a05:2287:ffff:ffff:ffff:ffff:ffff:ffff,SI 2a05:22c0::,2a05:22c7:ffff:ffff:ffff:ffff:ffff:ffff,NL 2a05:2300::,2a05:2307:ffff:ffff:ffff:ffff:ffff:ffff,NL @@ -25232,12 +25160,14 @@ 2a05:2500::,2a05:2507:ffff:ffff:ffff:ffff:ffff:ffff,NL 2a05:2540::,2a05:2547:ffff:ffff:ffff:ffff:ffff:ffff,IE 2a05:2580::,2a05:2587:ffff:ffff:ffff:ffff:ffff:ffff,UA +2a05:25c0::,2a05:25c7:ffff:ffff:ffff:ffff:ffff:ffff,KW 2a05:2600::,2a05:2607:ffff:ffff:ffff:ffff:ffff:ffff,BE 2a05:2640::,2a05:2647:ffff:ffff:ffff:ffff:ffff:ffff,FR 2a05:2680::,2a05:2687:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a05:26c0::,2a05:26c7:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a05:2700::,2a05:2707:ffff:ffff:ffff:ffff:ffff:ffff,CH 2a05:2740::,2a05:2747:ffff:ffff:ffff:ffff:ffff:ffff,CH +2a05:2780::,2a05:2787:ffff:ffff:ffff:ffff:ffff:ffff,IT 2a05:27c0::,2a05:27c7:ffff:ffff:ffff:ffff:ffff:ffff,KZ 2a05:2800::,2a05:2807:ffff:ffff:ffff:ffff:ffff:ffff,IE 2a05:2840::,2a05:2847:ffff:ffff:ffff:ffff:ffff:ffff,NO @@ -25282,6 +25212,7 @@ 2a05:3200::,2a05:3207:ffff:ffff:ffff:ffff:ffff:ffff,NL 2a05:3240::,2a05:3247:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a05:3280::,2a05:3287:ffff:ffff:ffff:ffff:ffff:ffff,SA +2a05:32c0::,2a05:32c7:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a05:3300::,2a05:3307:ffff:ffff:ffff:ffff:ffff:ffff,FR 2a05:3380::,2a05:3387:ffff:ffff:ffff:ffff:ffff:ffff,YE 2a05:33c0::,2a05:33c7:ffff:ffff:ffff:ffff:ffff:ffff,SI @@ -25373,6 +25304,7 @@ 2a05:4980::,2a05:4987:ffff:ffff:ffff:ffff:ffff:ffff,RS 2a05:49c0::,2a05:49c7:ffff:ffff:ffff:ffff:ffff:ffff,IR 2a05:4a00::,2a05:4a07:ffff:ffff:ffff:ffff:ffff:ffff,IT +2a05:4a40::,2a05:4a47:ffff:ffff:ffff:ffff:ffff:ffff,CZ 2a05:4ac0::,2a05:4ac7:ffff:ffff:ffff:ffff:ffff:ffff,ES 2a05:4b00::,2a05:4b07:ffff:ffff:ffff:ffff:ffff:ffff,UA 2a05:4b40::,2a05:4b47:ffff:ffff:ffff:ffff:ffff:ffff,RU @@ -25449,6 +25381,7 @@ 2a05:5c80::,2a05:5c87:ffff:ffff:ffff:ffff:ffff:ffff,ES 2a05:5cc0::,2a05:5cc7:ffff:ffff:ffff:ffff:ffff:ffff,ES 2a05:5d00::,2a05:5d07:ffff:ffff:ffff:ffff:ffff:ffff,RU +2a05:5d40::,2a05:5d47:ffff:ffff:ffff:ffff:ffff:ffff,ES 2a05:5d80::,2a05:5d87:ffff:ffff:ffff:ffff:ffff:ffff,MK 2a05:5dc0::,2a05:5dc7:ffff:ffff:ffff:ffff:ffff:ffff,RU 2a05:5e00::,2a05:5e07:ffff:ffff:ffff:ffff:ffff:ffff,AE @@ -25526,6 +25459,7 @@ 2a05:7000::,2a05:7007:ffff:ffff:ffff:ffff:ffff:ffff,CH 2a05:7040::,2a05:7047:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a05:7080::,2a05:7087:ffff:ffff:ffff:ffff:ffff:ffff,ES +2a05:70c0::,2a05:70c7:ffff:ffff:ffff:ffff:ffff:ffff,HR 2a05:7100::,2a05:7107:ffff:ffff:ffff:ffff:ffff:ffff,PL 2a05:7140::,2a05:7147:ffff:ffff:ffff:ffff:ffff:ffff,MD 2a05:7180::,2a05:7187:ffff:ffff:ffff:ffff:ffff:ffff,DE @@ -25577,7 +25511,7 @@ 2a05:7d00::,2a05:7d07:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a05:7d40::,2a05:7d47:ffff:ffff:ffff:ffff:ffff:ffff,TR 2a05:7d80::,2a05:7d87:ffff:ffff:ffff:ffff:ffff:ffff,YE -2a05:7dc0::,2a05:7dc1:ffff:ffff:ffff:ffff:ffff:ffff,DE +2a05:7dc0::,2a05:7dc7:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a05:7de0::,2a05:7de3:ffff:ffff:ffff:ffff:ffff:ffff,IR 2a05:7e00::,2a05:7e07:ffff:ffff:ffff:ffff:ffff:ffff,CH 2a05:7e40::,2a05:7e47:ffff:ffff:ffff:ffff:ffff:ffff,DE @@ -25998,6 +25932,7 @@ 2a05:e700::,2a05:e707:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a05:e740::,2a05:e747:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a05:e780::,2a05:e787:ffff:ffff:ffff:ffff:ffff:ffff,IR +2a05:e7c0::,2a05:e7c7:ffff:ffff:ffff:ffff:ffff:ffff,FR 2a05:e800::,2a05:e807:ffff:ffff:ffff:ffff:ffff:ffff,SK 2a05:e840::,2a05:e847:ffff:ffff:ffff:ffff:ffff:ffff,SE 2a05:e880::,2a05:e887:ffff:ffff:ffff:ffff:ffff:ffff,NO @@ -26077,6 +26012,7 @@ 2a05:fb00::,2a05:fb07:ffff:ffff:ffff:ffff:ffff:ffff,SE 2a05:fb80::,2a05:fb87:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a05:fbc0::,2a05:fbc3:ffff:ffff:ffff:ffff:ffff:ffff,TR +2a05:fbe0::,2a05:fbe3:ffff:ffff:ffff:ffff:ffff:ffff,CZ 2a05:fc00::,2a05:fc07:ffff:ffff:ffff:ffff:ffff:ffff,AT 2a05:fc40::,2a05:fc47:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a05:fc80::,2a05:fc87:ffff:ffff:ffff:ffff:ffff:ffff,CH @@ -26145,9 +26081,7 @@ 2a06:cc0::,2a06:cc7:ffff:ffff:ffff:ffff:ffff:ffff,SK 2a06:d00::,2a06:d07:ffff:ffff:ffff:ffff:ffff:ffff,IT 2a06:d40::,2a06:d47:ffff:ffff:ffff:ffff:ffff:ffff,US -2a06:d80::,2a06:d86:1fe:ffff:ffff:ffff:ffff:ffff,GB -2a06:d86:1ff::,2a06:d86:1ff:7fff:ffff:ffff:ffff:ffff,US -2a06:d86:1ff:8000::,2a06:d87:ffff:ffff:ffff:ffff:ffff:ffff,GB +2a06:d80::,2a06:d87:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a06:dc0::,2a06:dc7:ffff:ffff:ffff:ffff:ffff:ffff,IT 2a06:e00::,2a06:e07:ffff:ffff:ffff:ffff:ffff:ffff,NL 2a06:e40::,2a06:e47:ffff:ffff:ffff:ffff:ffff:ffff,GB @@ -26164,7 +26098,8 @@ 2a06:1100::,2a06:1107:ffff:ffff:ffff:ffff:ffff:ffff,IE 2a06:1140::,2a06:1147:ffff:ffff:ffff:ffff:ffff:ffff,RU 2a06:1180::,2a06:1187:ffff:ffff:ffff:ffff:ffff:ffff,NL -2a06:11c0::,2a06:11c7:ffff:ffff:ffff:ffff:ffff:ffff,RO +2a06:11c0::,2a06:11c0:f:ffff:ffff:ffff:ffff:ffff,GB +2a06:11c0:10::,2a06:11c7:ffff:ffff:ffff:ffff:ffff:ffff,RO 2a06:1200::,2a06:1207:ffff:ffff:ffff:ffff:ffff:ffff,FR 2a06:1240::,2a06:1247:ffff:ffff:ffff:ffff:ffff:ffff,CZ 2a06:1280::,2a06:1280:bee0:ffff:ffff:ffff:ffff:ffff,BY @@ -26295,6 +26230,7 @@ 2a06:30c0::,2a06:30c7:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a06:3100::,2a06:3107:ffff:ffff:ffff:ffff:ffff:ffff,NL 2a06:3180::,2a06:3187:ffff:ffff:ffff:ffff:ffff:ffff,SA +2a06:31c0::,2a06:31c7:ffff:ffff:ffff:ffff:ffff:ffff,NO 2a06:3200::,2a06:3207:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a06:3240::,2a06:3247:ffff:ffff:ffff:ffff:ffff:ffff,NL 2a06:3280::,2a06:3287:ffff:ffff:ffff:ffff:ffff:ffff,IT @@ -26417,6 +26353,8 @@ 2a06:50c0::,2a06:50c7:ffff:ffff:ffff:ffff:ffff:ffff,NL 2a06:5100::,2a06:5107:ffff:ffff:ffff:ffff:ffff:ffff,CH 2a06:5140::,2a06:5147:ffff:ffff:ffff:ffff:ffff:ffff,IT +2a06:5180::,2a06:5187:ffff:ffff:ffff:ffff:ffff:ffff,TR +2a06:51c0::,2a06:51c7:ffff:ffff:ffff:ffff:ffff:ffff,PL 2a06:5200::,2a06:5207:ffff:ffff:ffff:ffff:ffff:ffff,IE 2a06:5240::,2a06:5247:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a06:5280::,2a06:5287:ffff:ffff:ffff:ffff:ffff:ffff,RO @@ -26544,11 +26482,13 @@ 2a06:7180::,2a06:7187:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a06:71c0::,2a06:71c7:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a06:7200::,2a06:7207:ffff:ffff:ffff:ffff:ffff:ffff,DE -2a06:7240::,2a06:7247:ffff:ffff:ffff:ffff:ffff:ffff,AT +2a06:7240::,2a06:7240:4:ffff:ffff:ffff:ffff:ffff,AT +2a06:7240:5::,2a06:7240:6:ffff:ffff:ffff:ffff:ffff,NL +2a06:7240:7::,2a06:7247:ffff:ffff:ffff:ffff:ffff:ffff,AT 2a06:7280::,2a06:7287:ffff:ffff:ffff:ffff:ffff:ffff,IT 2a06:72c0::,2a06:72c7:ffff:ffff:ffff:ffff:ffff:ffff,NL 2a06:7300::,2a06:7307:ffff:ffff:ffff:ffff:ffff:ffff,UA -2a06:7340::,2a06:7347:ffff:ffff:ffff:ffff:ffff:ffff,RO +2a06:7340::,2a06:7347:ffff:ffff:ffff:ffff:ffff:ffff,BG 2a06:7380::,2a06:7387:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a06:73c0::,2a06:73c7:ffff:ffff:ffff:ffff:ffff:ffff,AL 2a06:7400::,2a06:7407:ffff:ffff:ffff:ffff:ffff:ffff,RO @@ -26603,18 +26543,20 @@ 2a06:8040::,2a06:8047:ffff:ffff:ffff:ffff:ffff:ffff,FR 2a06:8080::,2a06:8087:ffff:ffff:ffff:ffff:ffff:ffff,CZ 2a06:80c0::,2a06:80c7:ffff:ffff:ffff:ffff:ffff:ffff,DE -2a06:8100::,2a06:8107:ffff:ffff:ffff:ffff:ffff:ffff,RO +2a06:8100::,2a06:8107:ffff:ffff:ffff:ffff:ffff:ffff,BG 2a06:8140::,2a06:8147:ffff:ffff:ffff:ffff:ffff:ffff,DE -2a06:8180::,2a06:8181:9f:ffff:ffff:ffff:ffff:ffff,GB -2a06:8181:a0::,2a06:8181:af:ffff:ffff:ffff:ffff:ffff,NL -2a06:8181:b0::,2a06:8181:fef:ffff:ffff:ffff:ffff:ffff,GB +2a06:8180::,2a06:8181:fef:ffff:ffff:ffff:ffff:ffff,GB 2a06:8181:ff0::,2a06:8181:fff:ffff:ffff:ffff:ffff:ffff,AT 2a06:8181:1000::,2a06:8181:1fcf:ffff:ffff:ffff:ffff:ffff,GB 2a06:8181:1fd0::,2a06:8181:1fdf:ffff:ffff:ffff:ffff:ffff,AT 2a06:8181:1fe0::,2a06:8184:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a06:8185::,2a06:8185:ffff:ffff:ffff:ffff:ffff:ffff,CH 2a06:8186::,2a06:8187:fcff:ffff:ffff:ffff:ffff:ffff,GB -2a06:8187:fd00::,2a06:8187:fdff:ffff:ffff:ffff:ffff:ffff,FR +2a06:8187:fd00::,2a06:8187:fd02:ffff:ffff:ffff:ffff:ffff,FR +2a06:8187:fd03::,2a06:8187:fd03:ffff:ffff:ffff:ffff:ffff,IE +2a06:8187:fd04::,2a06:8187:fd98:ffff:ffff:ffff:ffff:ffff,FR +2a06:8187:fd99::,2a06:8187:fd99:ffff:ffff:ffff:ffff:ffff,LI +2a06:8187:fd9a::,2a06:8187:fdff:ffff:ffff:ffff:ffff:ffff,FR 2a06:8187:fe00::,2a06:8187:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a06:81c0::,2a06:81c7:ffff:ffff:ffff:ffff:ffff:ffff,NO 2a06:8200::,2a06:8207:ffff:ffff:ffff:ffff:ffff:ffff,IR @@ -26665,7 +26607,8 @@ 2a06:8d00::,2a06:8d07:ffff:ffff:ffff:ffff:ffff:ffff,IR 2a06:8d40::,2a06:8d47:ffff:ffff:ffff:ffff:ffff:ffff,NL 2a06:8d80::,2a06:8d87:ffff:ffff:ffff:ffff:ffff:ffff,GB -2a06:8dc0::,2a06:8dc7:ffff:ffff:ffff:ffff:ffff:ffff,GB +2a06:8dc0::,2a06:8dc0:f:ffff:ffff:ffff:ffff:ffff,RO +2a06:8dc0:10::,2a06:8dc7:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a06:8e00::,2a06:8e07:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a06:8e40::,2a06:8e47:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a06:8e80::,2a06:8e87:ffff:ffff:ffff:ffff:ffff:ffff,GB @@ -26862,7 +26805,6 @@ 2a06:bd00::,2a06:bd07:ffff:ffff:ffff:ffff:ffff:ffff,NO 2a06:bd40::,2a06:bd47:ffff:ffff:ffff:ffff:ffff:ffff,NL 2a06:bd80::,2a06:bd87:ffff:ffff:ffff:ffff:ffff:ffff,IS -2a06:bdc0::,2a06:bdc7:ffff:ffff:ffff:ffff:ffff:ffff,ES 2a06:be00::,2a06:be07:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a06:be40::,2a06:be47:ffff:ffff:ffff:ffff:ffff:ffff,IT 2a06:be80::,2a06:be87:ffff:ffff:ffff:ffff:ffff:ffff,DE @@ -27025,6 +26967,241 @@ 2a06:e5c0::,2a06:e5c7:ffff:ffff:ffff:ffff:ffff:ffff,RS 2a06:e600::,2a06:e607:ffff:ffff:ffff:ffff:ffff:ffff,RU 2a06:e640::,2a06:e647:ffff:ffff:ffff:ffff:ffff:ffff,PT +2a06:e680::,2a06:e687:ffff:ffff:ffff:ffff:ffff:ffff,DE +2a06:e6c0::,2a06:e6c7:ffff:ffff:ffff:ffff:ffff:ffff,LU +2a06:e700::,2a06:e707:ffff:ffff:ffff:ffff:ffff:ffff,DE +2a06:e740::,2a06:e747:ffff:ffff:ffff:ffff:ffff:ffff,IR +2a06:e780::,2a06:e787:ffff:ffff:ffff:ffff:ffff:ffff,PL +2a06:e7c0::,2a06:e7c7:ffff:ffff:ffff:ffff:ffff:ffff,FR +2a06:e800::,2a06:e807:ffff:ffff:ffff:ffff:ffff:ffff,DK +2a06:e840::,2a06:e847:ffff:ffff:ffff:ffff:ffff:ffff,ES +2a06:e880::,2a06:e881:1ff:ffff:ffff:ffff:ffff:ffff,CH +2a06:e881:200::,2a06:e881:2ff:ffff:ffff:ffff:ffff:ffff,AT +2a06:e881:300::,2a06:e887:ffff:ffff:ffff:ffff:ffff:ffff,CH +2a06:e8c0::,2a06:e8c7:ffff:ffff:ffff:ffff:ffff:ffff,LV +2a06:e900::,2a06:e907:ffff:ffff:ffff:ffff:ffff:ffff,HU +2a06:e940::,2a06:e947:ffff:ffff:ffff:ffff:ffff:ffff,RU +2a06:e980::,2a06:e987:ffff:ffff:ffff:ffff:ffff:ffff,FR +2a06:e9c0::,2a06:e9c7:ffff:ffff:ffff:ffff:ffff:ffff,DE +2a06:ea00::,2a06:ea07:ffff:ffff:ffff:ffff:ffff:ffff,IT +2a06:ea40::,2a06:ea47:ffff:ffff:ffff:ffff:ffff:ffff,SE +2a06:ea80::,2a06:ea87:ffff:ffff:ffff:ffff:ffff:ffff,DE +2a06:eac0::,2a06:eac7:ffff:ffff:ffff:ffff:ffff:ffff,DK +2a06:eb00::,2a06:eb07:ffff:ffff:ffff:ffff:ffff:ffff,IT +2a06:eb40::,2a06:eb47:ffff:ffff:ffff:ffff:ffff:ffff,DE +2a06:eb80::,2a06:eb87:ffff:ffff:ffff:ffff:ffff:ffff,LB +2a06:ebc0::,2a06:ebc7:ffff:ffff:ffff:ffff:ffff:ffff,LU +2a06:ec00::,2a06:ec07:ffff:ffff:ffff:ffff:ffff:ffff,DE +2a06:ec40::,2a06:ec47:ffff:ffff:ffff:ffff:ffff:ffff,IT +2a06:ec80::,2a06:ec87:ffff:ffff:ffff:ffff:ffff:ffff,GB +2a06:ecc0::,2a06:ecc7:ffff:ffff:ffff:ffff:ffff:ffff,FI +2a06:ed00::,2a06:ed07:ffff:ffff:ffff:ffff:ffff:ffff,DE +2a06:ed40::,2a06:ed47:ffff:ffff:ffff:ffff:ffff:ffff,CZ +2a06:ed80::,2a06:ed87:ffff:ffff:ffff:ffff:ffff:ffff,TJ +2a06:edc0::,2a06:edc7:ffff:ffff:ffff:ffff:ffff:ffff,DE +2a06:ee00::,2a06:ee07:ffff:ffff:ffff:ffff:ffff:ffff,GB +2a06:ee40::,2a06:ee47:ffff:ffff:ffff:ffff:ffff:ffff,DE +2a06:ee80::,2a06:ee87:ffff:ffff:ffff:ffff:ffff:ffff,IQ +2a06:eec0::,2a06:eec7:ffff:ffff:ffff:ffff:ffff:ffff,NL +2a06:ef00::,2a06:ef07:ffff:ffff:ffff:ffff:ffff:ffff,FR +2a06:ef40::,2a06:ef47:ffff:ffff:ffff:ffff:ffff:ffff,DE +2a06:ef80::,2a06:ef87:ffff:ffff:ffff:ffff:ffff:ffff,RU +2a06:efc0::,2a06:efc7:ffff:ffff:ffff:ffff:ffff:ffff,BE +2a06:f000::,2a06:f007:ffff:ffff:ffff:ffff:ffff:ffff,SK +2a06:f040::,2a06:f047:ffff:ffff:ffff:ffff:ffff:ffff,FI +2a06:f080::,2a06:f087:ffff:ffff:ffff:ffff:ffff:ffff,CZ +2a06:f0c0::,2a06:f0c7:ffff:ffff:ffff:ffff:ffff:ffff,ES +2a06:f100::,2a06:f107:ffff:ffff:ffff:ffff:ffff:ffff,IR +2a06:f140::,2a06:f147:ffff:ffff:ffff:ffff:ffff:ffff,DE +2a06:f180::,2a06:f187:ffff:ffff:ffff:ffff:ffff:ffff,DK +2a06:f1c0::,2a06:f1c7:ffff:ffff:ffff:ffff:ffff:ffff,FR +2a06:f200::,2a06:f207:ffff:ffff:ffff:ffff:ffff:ffff,PL +2a06:f240::,2a06:f247:ffff:ffff:ffff:ffff:ffff:ffff,DK +2a06:f280::,2a06:f287:ffff:ffff:ffff:ffff:ffff:ffff,IT +2a06:f2c0::,2a06:f2c7:ffff:ffff:ffff:ffff:ffff:ffff,IT +2a06:f300::,2a06:f307:ffff:ffff:ffff:ffff:ffff:ffff,GB +2a06:f340::,2a06:f347:ffff:ffff:ffff:ffff:ffff:ffff,IT +2a06:f380::,2a06:f387:ffff:ffff:ffff:ffff:ffff:ffff,ES +2a06:f3c0::,2a06:f3c7:ffff:ffff:ffff:ffff:ffff:ffff,PL +2a06:f400::,2a06:f407:ffff:ffff:ffff:ffff:ffff:ffff,RU +2a06:f440::,2a06:f447:ffff:ffff:ffff:ffff:ffff:ffff,CZ +2a06:f480::,2a06:f487:ffff:ffff:ffff:ffff:ffff:ffff,CH +2a06:f4c0::,2a06:f4c7:ffff:ffff:ffff:ffff:ffff:ffff,BE +2a06:f500::,2a06:f507:ffff:ffff:ffff:ffff:ffff:ffff,IN +2a06:f540::,2a06:f547:ffff:ffff:ffff:ffff:ffff:ffff,CZ +2a06:f580::,2a06:f587:ffff:ffff:ffff:ffff:ffff:ffff,RU +2a06:f5c0::,2a06:f5c7:ffff:ffff:ffff:ffff:ffff:ffff,GB +2a06:f600::,2a06:f607:ffff:ffff:ffff:ffff:ffff:ffff,FR +2a06:f640::,2a06:f647:ffff:ffff:ffff:ffff:ffff:ffff,GB +2a06:f680::,2a06:f687:ffff:ffff:ffff:ffff:ffff:ffff,HU +2a06:f6c0::,2a06:f6c7:ffff:ffff:ffff:ffff:ffff:ffff,CZ +2a06:f700::,2a06:f707:ffff:ffff:ffff:ffff:ffff:ffff,NL +2a06:f740::,2a06:f747:ffff:ffff:ffff:ffff:ffff:ffff,LU +2a06:f780::,2a06:f787:ffff:ffff:ffff:ffff:ffff:ffff,NL +2a06:f7c0::,2a06:f7c7:ffff:ffff:ffff:ffff:ffff:ffff,TR +2a06:f800::,2a06:f807:ffff:ffff:ffff:ffff:ffff:ffff,NO +2a06:f840::,2a06:f847:ffff:ffff:ffff:ffff:ffff:ffff,ES +2a06:f880::,2a06:f887:ffff:ffff:ffff:ffff:ffff:ffff,US +2a06:f8c0::,2a06:f8c7:ffff:ffff:ffff:ffff:ffff:ffff,TR +2a06:f900::,2a06:f907:ffff:ffff:ffff:ffff:ffff:ffff,NL +2a06:f940::,2a06:f947:ffff:ffff:ffff:ffff:ffff:ffff,AT +2a06:f980::,2a06:f987:ffff:ffff:ffff:ffff:ffff:ffff,IE +2a06:f9c0::,2a06:f9c7:ffff:ffff:ffff:ffff:ffff:ffff,NL +2a06:fa00::,2a06:fa07:ffff:ffff:ffff:ffff:ffff:ffff,RU +2a06:fa40::,2a06:fa47:ffff:ffff:ffff:ffff:ffff:ffff,TR +2a06:fa80::,2a06:fa87:ffff:ffff:ffff:ffff:ffff:ffff,NO +2a06:fac0::,2a06:fac7:ffff:ffff:ffff:ffff:ffff:ffff,IT +2a06:fb00::,2a06:fb07:ffff:ffff:ffff:ffff:ffff:ffff,BG +2a06:fb40::,2a06:fb47:ffff:ffff:ffff:ffff:ffff:ffff,CZ +2a06:fb80::,2a06:fb87:ffff:ffff:ffff:ffff:ffff:ffff,AT +2a06:fbc0::,2a06:fbc7:ffff:ffff:ffff:ffff:ffff:ffff,DE +2a06:fc00::,2a06:fc07:ffff:ffff:ffff:ffff:ffff:ffff,RU +2a06:fc40::,2a06:fc47:ffff:ffff:ffff:ffff:ffff:ffff,DK +2a06:fc80::,2a06:fc87:ffff:ffff:ffff:ffff:ffff:ffff,ES +2a06:fcc0::,2a06:fcc7:ffff:ffff:ffff:ffff:ffff:ffff,PL +2a06:fd00::,2a06:fd07:ffff:ffff:ffff:ffff:ffff:ffff,BE +2a06:fd40::,2a06:fd47:ffff:ffff:ffff:ffff:ffff:ffff,DE +2a06:fd80::,2a06:fd87:ffff:ffff:ffff:ffff:ffff:ffff,IQ +2a06:fdc0::,2a06:fdc7:ffff:ffff:ffff:ffff:ffff:ffff,RO +2a06:fe00::,2a06:fe07:ffff:ffff:ffff:ffff:ffff:ffff,MA +2a06:fe40::,2a06:fe47:ffff:ffff:ffff:ffff:ffff:ffff,UZ +2a06:fe80::,2a06:fe87:ffff:ffff:ffff:ffff:ffff:ffff,CZ +2a06:fec0::,2a06:fec7:ffff:ffff:ffff:ffff:ffff:ffff,BE +2a06:ff00::,2a06:ff07:ffff:ffff:ffff:ffff:ffff:ffff,PL +2a06:ff40::,2a06:ff47:ffff:ffff:ffff:ffff:ffff:ffff,UA +2a06:ff80::,2a06:ff87:ffff:ffff:ffff:ffff:ffff:ffff,IQ +2a06:ffc0::,2a06:ffc7:ffff:ffff:ffff:ffff:ffff:ffff,CZ +2a07::,2a07:7:ffff:ffff:ffff:ffff:ffff:ffff,GB +2a07:40::,2a07:47:ffff:ffff:ffff:ffff:ffff:ffff,IR +2a07:80::,2a07:87:ffff:ffff:ffff:ffff:ffff:ffff,NL +2a07:c0::,2a07:c7:ffff:ffff:ffff:ffff:ffff:ffff,GB +2a07:100::,2a07:107:ffff:ffff:ffff:ffff:ffff:ffff,ES +2a07:140::,2a07:147:ffff:ffff:ffff:ffff:ffff:ffff,JO +2a07:180::,2a07:187:ffff:ffff:ffff:ffff:ffff:ffff,UA +2a07:1c0::,2a07:1c7:ffff:ffff:ffff:ffff:ffff:ffff,FR +2a07:200::,2a07:207:ffff:ffff:ffff:ffff:ffff:ffff,BY +2a07:280::,2a07:287:ffff:ffff:ffff:ffff:ffff:ffff,RU +2a07:2c0::,2a07:2c7:ffff:ffff:ffff:ffff:ffff:ffff,IT +2a07:300::,2a07:307:ffff:ffff:ffff:ffff:ffff:ffff,LU +2a07:340::,2a07:347:ffff:ffff:ffff:ffff:ffff:ffff,NL +2a07:380::,2a07:387:ffff:ffff:ffff:ffff:ffff:ffff,IR +2a07:3c0::,2a07:3c7:ffff:ffff:ffff:ffff:ffff:ffff,CZ +2a07:400::,2a07:407:ffff:ffff:ffff:ffff:ffff:ffff,GB +2a07:440::,2a07:447:ffff:ffff:ffff:ffff:ffff:ffff,DE +2a07:480::,2a07:487:ffff:ffff:ffff:ffff:ffff:ffff,ES +2a07:4c0::,2a07:4c7:ffff:ffff:ffff:ffff:ffff:ffff,CZ +2a07:500::,2a07:507:ffff:ffff:ffff:ffff:ffff:ffff,RU +2a07:540::,2a07:547:ffff:ffff:ffff:ffff:ffff:ffff,RO +2a07:580::,2a07:587:ffff:ffff:ffff:ffff:ffff:ffff,RO +2a07:5c0::,2a07:5c7:ffff:ffff:ffff:ffff:ffff:ffff,CH +2a07:600::,2a07:607:ffff:ffff:ffff:ffff:ffff:ffff,CH +2a07:640::,2a07:647:ffff:ffff:ffff:ffff:ffff:ffff,NO +2a07:680::,2a07:687:ffff:ffff:ffff:ffff:ffff:ffff,DE +2a07:6c0::,2a07:6c7:ffff:ffff:ffff:ffff:ffff:ffff,SE +2a07:700::,2a07:707:ffff:ffff:ffff:ffff:ffff:ffff,IT +2a07:740::,2a07:747:ffff:ffff:ffff:ffff:ffff:ffff,KW +2a07:780::,2a07:787:ffff:ffff:ffff:ffff:ffff:ffff,IT +2a07:7c0::,2a07:7c7:ffff:ffff:ffff:ffff:ffff:ffff,FR +2a07:800::,2a07:807:ffff:ffff:ffff:ffff:ffff:ffff,PL +2a07:840::,2a07:847:ffff:ffff:ffff:ffff:ffff:ffff,GB +2a07:880::,2a07:887:ffff:ffff:ffff:ffff:ffff:ffff,RU +2a07:8c0::,2a07:8c7:ffff:ffff:ffff:ffff:ffff:ffff,GR +2a07:900::,2a07:907:ffff:ffff:ffff:ffff:ffff:ffff,CH +2a07:940::,2a07:947:ffff:ffff:ffff:ffff:ffff:ffff,DE +2a07:980::,2a07:987:ffff:ffff:ffff:ffff:ffff:ffff,FR +2a07:9c0::,2a07:9c7:ffff:ffff:ffff:ffff:ffff:ffff,CZ +2a07:a00::,2a07:a07:ffff:ffff:ffff:ffff:ffff:ffff,TR +2a07:a40::,2a07:a47:ffff:ffff:ffff:ffff:ffff:ffff,DE +2a07:a80::,2a07:a87:ffff:ffff:ffff:ffff:ffff:ffff,NL +2a07:ac0::,2a07:ac7:ffff:ffff:ffff:ffff:ffff:ffff,GB +2a07:b00::,2a07:b07:ffff:ffff:ffff:ffff:ffff:ffff,SE +2a07:b40::,2a07:b47:ffff:ffff:ffff:ffff:ffff:ffff,RU +2a07:b80::,2a07:b87:ffff:ffff:ffff:ffff:ffff:ffff,GB +2a07:bc0::,2a07:bc7:ffff:ffff:ffff:ffff:ffff:ffff,CZ +2a07:c00::,2a07:c07:ffff:ffff:ffff:ffff:ffff:ffff,RU +2a07:c40::,2a07:c47:ffff:ffff:ffff:ffff:ffff:ffff,NO +2a07:c80::,2a07:c87:ffff:ffff:ffff:ffff:ffff:ffff,UA +2a07:cc0::,2a07:cc7:ffff:ffff:ffff:ffff:ffff:ffff,NL +2a07:d00::,2a07:d07:ffff:ffff:ffff:ffff:ffff:ffff,DE +2a07:d40::,2a07:d47:ffff:ffff:ffff:ffff:ffff:ffff,BE +2a07:d80::,2a07:d87:ffff:ffff:ffff:ffff:ffff:ffff,PL +2a07:dc0::,2a07:dc7:ffff:ffff:ffff:ffff:ffff:ffff,RU +2a07:e00::,2a07:e07:ffff:ffff:ffff:ffff:ffff:ffff,GB +2a07:e40::,2a07:e47:ffff:ffff:ffff:ffff:ffff:ffff,DE +2a07:e80::,2a07:e87:ffff:ffff:ffff:ffff:ffff:ffff,DE +2a07:ec0::,2a07:ec7:ffff:ffff:ffff:ffff:ffff:ffff,DK +2a07:f00::,2a07:f07:ffff:ffff:ffff:ffff:ffff:ffff,DE +2a07:f40::,2a07:f47:ffff:ffff:ffff:ffff:ffff:ffff,RS +2a07:f80::,2a07:f87:ffff:ffff:ffff:ffff:ffff:ffff,GB +2a07:fc0::,2a07:fc7:ffff:ffff:ffff:ffff:ffff:ffff,IS +2a07:1000::,2a07:1007:ffff:ffff:ffff:ffff:ffff:ffff,RU +2a07:1040::,2a07:1047:ffff:ffff:ffff:ffff:ffff:ffff,GB +2a07:1080::,2a07:1087:ffff:ffff:ffff:ffff:ffff:ffff,UA +2a07:10c0::,2a07:10c7:ffff:ffff:ffff:ffff:ffff:ffff,NL +2a07:1100::,2a07:1107:ffff:ffff:ffff:ffff:ffff:ffff,HU +2a07:1140::,2a07:1147:ffff:ffff:ffff:ffff:ffff:ffff,RU +2a07:1180::,2a07:1187:ffff:ffff:ffff:ffff:ffff:ffff,EE +2a07:11c0::,2a07:11c7:ffff:ffff:ffff:ffff:ffff:ffff,CZ +2a07:1200::,2a07:1207:ffff:ffff:ffff:ffff:ffff:ffff,FR +2a07:1240::,2a07:1247:ffff:ffff:ffff:ffff:ffff:ffff,GB +2a07:1280::,2a07:1287:ffff:ffff:ffff:ffff:ffff:ffff,IT +2a07:12c0::,2a07:12c7:ffff:ffff:ffff:ffff:ffff:ffff,DE +2a07:1300::,2a07:1307:ffff:ffff:ffff:ffff:ffff:ffff,GB +2a07:1340::,2a07:1347:ffff:ffff:ffff:ffff:ffff:ffff,UA +2a07:1380::,2a07:1387:ffff:ffff:ffff:ffff:ffff:ffff,IR +2a07:13c0::,2a07:13c7:ffff:ffff:ffff:ffff:ffff:ffff,PL +2a07:1400::,2a07:1407:ffff:ffff:ffff:ffff:ffff:ffff,DK +2a07:1440::,2a07:1447:ffff:ffff:ffff:ffff:ffff:ffff,DE +2a07:1480::,2a07:1487:ffff:ffff:ffff:ffff:ffff:ffff,DK +2a07:14c0::,2a07:14c7:ffff:ffff:ffff:ffff:ffff:ffff,RU +2a07:1500::,2a07:1507:ffff:ffff:ffff:ffff:ffff:ffff,GB +2a07:1540::,2a07:1547:ffff:ffff:ffff:ffff:ffff:ffff,NO +2a07:1580::,2a07:1587:ffff:ffff:ffff:ffff:ffff:ffff,DE +2a07:15c0::,2a07:15c7:ffff:ffff:ffff:ffff:ffff:ffff,TR +2a07:1600::,2a07:1607:ffff:ffff:ffff:ffff:ffff:ffff,NO +2a07:1640::,2a07:1647:ffff:ffff:ffff:ffff:ffff:ffff,NO +2a07:1680::,2a07:1687:ffff:ffff:ffff:ffff:ffff:ffff,NO +2a07:16c0::,2a07:16c7:ffff:ffff:ffff:ffff:ffff:ffff,ES +2a07:1700::,2a07:1707:ffff:ffff:ffff:ffff:ffff:ffff,NO +2a07:1740::,2a07:1747:ffff:ffff:ffff:ffff:ffff:ffff,DE +2a07:1780::,2a07:1787:ffff:ffff:ffff:ffff:ffff:ffff,RU +2a07:17c0::,2a07:17c7:ffff:ffff:ffff:ffff:ffff:ffff,UA +2a07:1800::,2a07:1807:ffff:ffff:ffff:ffff:ffff:ffff,AT +2a07:1840::,2a07:1847:ffff:ffff:ffff:ffff:ffff:ffff,RU +2a07:1880::,2a07:1887:ffff:ffff:ffff:ffff:ffff:ffff,IT +2a07:18c0::,2a07:18c7:ffff:ffff:ffff:ffff:ffff:ffff,FR +2a07:1900::,2a07:1907:ffff:ffff:ffff:ffff:ffff:ffff,FR +2a07:1940::,2a07:1947:ffff:ffff:ffff:ffff:ffff:ffff,IT +2a07:1980::,2a07:1987:ffff:ffff:ffff:ffff:ffff:ffff,IL +2a07:19c0::,2a07:19c7:ffff:ffff:ffff:ffff:ffff:ffff,FR +2a07:1a00::,2a07:1a07:ffff:ffff:ffff:ffff:ffff:ffff,ES +2a07:1a40::,2a07:1a47:ffff:ffff:ffff:ffff:ffff:ffff,PL +2a07:1a80::,2a07:1a87:ffff:ffff:ffff:ffff:ffff:ffff,SE +2a07:1ac0::,2a07:1ac7:ffff:ffff:ffff:ffff:ffff:ffff,DE +2a07:1b00::,2a07:1b07:ffff:ffff:ffff:ffff:ffff:ffff,GB +2a07:1b40::,2a07:1b47:ffff:ffff:ffff:ffff:ffff:ffff,GB +2a07:1b80::,2a07:1b87:ffff:ffff:ffff:ffff:ffff:ffff,AT +2a07:1bc0::,2a07:1bc7:ffff:ffff:ffff:ffff:ffff:ffff,PL +2a07:1c00::,2a07:1c07:ffff:ffff:ffff:ffff:ffff:ffff,DE +2a07:1c40::,2a07:1c47:ffff:ffff:ffff:ffff:ffff:ffff,AT +2a07:1c80::,2a07:1c87:ffff:ffff:ffff:ffff:ffff:ffff,SE +2a07:1cc0::,2a07:1cc7:ffff:ffff:ffff:ffff:ffff:ffff,PL +2a07:1d00::,2a07:1d07:ffff:ffff:ffff:ffff:ffff:ffff,IR +2a07:1d40::,2a07:1d47:ffff:ffff:ffff:ffff:ffff:ffff,RU +2a07:1d80::,2a07:1d87:ffff:ffff:ffff:ffff:ffff:ffff,FR +2a07:1dc0::,2a07:1dc7:ffff:ffff:ffff:ffff:ffff:ffff,PL +2a07:1e00::,2a07:1e07:ffff:ffff:ffff:ffff:ffff:ffff,KZ +2a07:1e40::,2a07:1e47:ffff:ffff:ffff:ffff:ffff:ffff,RU +2a07:1e80::,2a07:1e87:ffff:ffff:ffff:ffff:ffff:ffff,NL +2a07:1ec0::,2a07:1ec7:ffff:ffff:ffff:ffff:ffff:ffff,IT +2a07:1f00::,2a07:1f07:ffff:ffff:ffff:ffff:ffff:ffff,CH +2a07:1f40::,2a07:1f47:ffff:ffff:ffff:ffff:ffff:ffff,CZ +2a07:1f80::,2a07:1f87:ffff:ffff:ffff:ffff:ffff:ffff,US +2a07:1fc0::,2a07:1fc7:ffff:ffff:ffff:ffff:ffff:ffff,FR +2a07:2000::,2a07:2007:ffff:ffff:ffff:ffff:ffff:ffff,IQ +2a07:2040::,2a07:2047:ffff:ffff:ffff:ffff:ffff:ffff,ES +2a07:2080::,2a07:2087:ffff:ffff:ffff:ffff:ffff:ffff,NL +2a07:20c0::,2a07:20c7:ffff:ffff:ffff:ffff:ffff:ffff,CZ 2c0e::,2c0e:fff:ffff:ffff:ffff:ffff:ffff:ffff,EG 2c0e:2000::,2c0e:2fff:ffff:ffff:ffff:ffff:ffff:ffff,ZA 2c0e:4000::,2c0e:40ff:ffff:ffff:ffff:ffff:ffff:ffff,ZA @@ -27075,6 +27252,13 @@ 2c0f:f560::,2c0f:f560:ffff:ffff:ffff:ffff:ffff:ffff,KM 2c0f:f568::,2c0f:f568:ffff:ffff:ffff:ffff:ffff:ffff,CG 2c0f:f570::,2c0f:f570:ffff:ffff:ffff:ffff:ffff:ffff,ZA +2c0f:f578::,2c0f:f578:ffff:ffff:ffff:ffff:ffff:ffff,TG +2c0f:f580::,2c0f:f580:ffff:ffff:ffff:ffff:ffff:ffff,KE +2c0f:f588::,2c0f:f588:ffff:ffff:ffff:ffff:ffff:ffff,ZA +2c0f:f590::,2c0f:f590:ffff:ffff:ffff:ffff:ffff:ffff,CI +2c0f:f598::,2c0f:f598:ffff:ffff:ffff:ffff:ffff:ffff,ZA +2c0f:f5a0::,2c0f:f5a0:ffff:ffff:ffff:ffff:ffff:ffff,NG +2c0f:f5a8::,2c0f:f5a8:ffff:ffff:ffff:ffff:ffff:ffff,ZA 2c0f:f600::,2c0f:f600:ffff:ffff:ffff:ffff:ffff:ffff,GN 2c0f:f608::,2c0f:f608:ffff:ffff:ffff:ffff:ffff:ffff,RE 2c0f:f610::,2c0f:f610:ffff:ffff:ffff:ffff:ffff:ffff,ZA @@ -27329,11 +27513,7 @@ 2c0f:fea8::,2c0f:fea8:ffff:ffff:ffff:ffff:ffff:ffff,NG 2c0f:feb0::,2c0f:feb0:16:ffff:ffff:ffff:ffff:ffff,MU 2c0f:feb0:17::,2c0f:feb0:17:7fff:ffff:ffff:ffff:ffff,KE -2c0f:feb0:17:8000::,2c0f:feb0:1c:ffff:ffff:ffff:ffff:ffff,MU -2c0f:feb0:1d::,2c0f:feb0:1d:7fff:ffff:ffff:ffff:ffff,MZ -2c0f:feb0:1d:8000::,2c0f:feb0:1e:ffff:ffff:ffff:ffff:ffff,MU -2c0f:feb0:1f::,2c0f:feb0:1f:7fff:ffff:ffff:ffff:ffff,ZA -2c0f:feb0:1f:8000::,2c0f:feb1:ffff:ffff:ffff:ffff:ffff:ffff,MU +2c0f:feb0:17:8000::,2c0f:feb1:ffff:ffff:ffff:ffff:ffff:ffff,MU 2c0f:feb8::,2c0f:feb8:ffff:ffff:ffff:ffff:ffff:ffff,ZM 2c0f:fec0::,2c0f:fec0:ffff:ffff:ffff:ffff:ffff:ffff,UG 2c0f:fec8::,2c0f:fec8:ffff:ffff:ffff:ffff:ffff:ffff,SD diff --git a/src/ext/ed25519/donna/ed25519_tor.c b/src/ext/ed25519/donna/ed25519_tor.c index ac726ba045..52b259dfe1 100644 --- a/src/ext/ed25519/donna/ed25519_tor.c +++ b/src/ext/ed25519/donna/ed25519_tor.c @@ -168,8 +168,8 @@ ed25519_donna_seckey_expand(unsigned char *sk, const unsigned char *skseed) int ed25519_donna_pubkey(unsigned char *pk, const unsigned char *sk) { - bignum256modm a; - ge25519 ALIGN(16) A; + bignum256modm a = {0}; + ge25519 ALIGN(16) A = {{0}, {0}, {0}, {0}}; /* A = aB */ expand256_modm(a, sk, 32); @@ -204,8 +204,8 @@ ed25519_donna_sign(unsigned char *sig, const unsigned char *m, size_t mlen, const unsigned char *sk, const unsigned char *pk) { ed25519_hash_context ctx; - bignum256modm r, S, a; - ge25519 ALIGN(16) R; + bignum256modm r = {0}, S, a; + ge25519 ALIGN(16) R = {{0}, {0}, {0}, {0}}; hash_512bits hashr, hram; /* This is equivalent to the removed `ED25519_FN(ed25519_sign)` routine, diff --git a/src/ext/eventdns.c b/src/ext/eventdns.c index 37d8a7a3df..fc5657cbb4 100644 --- a/src/ext/eventdns.c +++ b/src/ext/eventdns.c @@ -388,7 +388,7 @@ debug_ntoa(u32 address) { static char buf[32]; u32 a = ntohl(address); - snprintf(buf, sizeof(buf), "%d.%d.%d.%d", + tor_snprintf(buf, sizeof(buf), "%d.%d.%d.%d", (int)(u8)((a>>24)&0xff), (int)(u8)((a>>16)&0xff), (int)(u8)((a>>8 )&0xff), @@ -436,12 +436,7 @@ evdns_log(int warn, const char *fmt, ...) if (!evdns_log_fn) return; va_start(args,fmt); -#ifdef _WIN32 - _vsnprintf(buf, sizeof(buf), fmt, args); -#else - vsnprintf(buf, sizeof(buf), fmt, args); -#endif - buf[sizeof(buf)-1] = '\0'; + tor_vsnprintf(buf, sizeof(buf), fmt, args); evdns_log_fn(warn, buf); va_end(args); } @@ -762,7 +757,7 @@ reply_handle(struct evdns_request *const req, u16 flags, u32 ttl, struct reply * /* we regard these errors as marking a bad nameserver */ if (req->reissue_count < global_max_reissues) { char msg[64]; - snprintf(msg, sizeof(msg), "Bad response %d (%s)", + tor_snprintf(msg, sizeof(msg), "Bad response %d (%s)", error, evdns_err_to_string(error)); nameserver_failed(req->ns, msg); if (!request_reissue(req)) return; @@ -1705,7 +1700,7 @@ evdns_server_request_add_ptr_reply(struct evdns_server_request *req, struct in_a assert(!(in && inaddr_name)); if (in) { a = ntohl(in->s_addr); - snprintf(buf, sizeof(buf), "%d.%d.%d.%d.in-addr.arpa", + tor_snprintf(buf, sizeof(buf), "%d.%d.%d.%d.in-addr.arpa", (int)(u8)((a )&0xff), (int)(u8)((a>>8 )&0xff), (int)(u8)((a>>16)&0xff), @@ -2638,7 +2633,7 @@ int evdns_resolve_reverse(const struct in_addr *in, int flags, evdns_callback_ty u32 a; assert(in); a = ntohl(in->s_addr); - snprintf(buf, sizeof(buf), "%d.%d.%d.%d.in-addr.arpa", + tor_snprintf(buf, sizeof(buf), "%d.%d.%d.%d.in-addr.arpa", (int)(u8)((a )&0xff), (int)(u8)((a>>8 )&0xff), (int)(u8)((a>>16)&0xff), diff --git a/src/ext/trunnel/trunnel-impl.h b/src/ext/trunnel/trunnel-impl.h index a97caf282f..dfe5f89e1a 100644 --- a/src/ext/trunnel/trunnel-impl.h +++ b/src/ext/trunnel/trunnel-impl.h @@ -1,4 +1,4 @@ -/* trunnel-impl.h -- copied from Trunnel v1.4.3 +/* trunnel-impl.h -- copied from Trunnel v1.4.4 * https://gitweb.torproject.org/trunnel.git * You probably shouldn't edit this file. */ diff --git a/src/ext/trunnel/trunnel.c b/src/ext/trunnel/trunnel.c index 25a46d9022..0ed75aa9a4 100644 --- a/src/ext/trunnel/trunnel.c +++ b/src/ext/trunnel/trunnel.c @@ -1,4 +1,4 @@ -/* trunnel.c -- copied from Trunnel v1.4.3 +/* trunnel.c -- copied from Trunnel v1.4.4 * https://gitweb.torproject.org/trunnel.git * You probably shouldn't edit this file. */ diff --git a/src/ext/trunnel/trunnel.h b/src/ext/trunnel/trunnel.h index 6140a3953f..62e87ee50c 100644 --- a/src/ext/trunnel/trunnel.h +++ b/src/ext/trunnel/trunnel.h @@ -1,4 +1,4 @@ -/* trunnel.h -- copied from Trunnel v1.4.3 +/* trunnel.h -- copied from Trunnel v1.4.4 * https://gitweb.torproject.org/trunnel.git * You probably shouldn't edit this file. */ diff --git a/src/or/addressmap.c b/src/or/addressmap.c index 9c29fb2acb..047a863ef5 100644 --- a/src/or/addressmap.c +++ b/src/or/addressmap.c @@ -1,9 +1,18 @@ /* Copyright (c) 2001 Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ +/** + * \file addressmap.c + * + * \brief The addressmap module manages the processes by which we rewrite + * addresses in client requess. It handles the MapAddress controller and + * torrc commands, and the TrackHostExits feature, and the client-side DNS + * cache (deprecated). + */ + #define ADDRESSMAP_PRIVATE #include "or.h" diff --git a/src/or/addressmap.h b/src/or/addressmap.h index ff108df024..67648d0518 100644 --- a/src/or/addressmap.h +++ b/src/or/addressmap.h @@ -1,7 +1,7 @@ /* Copyright (c) 2001 Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #ifndef TOR_ADDRESSMAP_H diff --git a/src/or/buffers.c b/src/or/buffers.c index cdb499b8da..f93cc48f33 100644 --- a/src/or/buffers.c +++ b/src/or/buffers.c @@ -1,14 +1,15 @@ /* Copyright (c) 2001 Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** * \file buffers.c * \brief Implements a generic interface buffer. Buffers are * fairly opaque string holders that can read to or flush from: - * memory, file descriptors, or TLS connections. + * memory, file descriptors, or TLS connections. Buffers are implemented + * as linked lists of memory chunks. **/ #define BUFFERS_PRIVATE #include "or.h" diff --git a/src/or/buffers.h b/src/or/buffers.h index 7f79e3c0b2..2b43ea14b1 100644 --- a/src/or/buffers.h +++ b/src/or/buffers.h @@ -1,7 +1,7 @@ /* Copyright (c) 2001 Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** diff --git a/src/or/channel.c b/src/or/channel.c index 46e833854b..851d8372f5 100644 --- a/src/or/channel.c +++ b/src/or/channel.c @@ -1,9 +1,13 @@ -/* * Copyright (c) 2012-2015, The Tor Project, Inc. */ +/* * Copyright (c) 2012-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** * \file channel.c - * \brief OR-to-OR channel abstraction layer + * + * \brief OR/OP-to-OR channel abstraction layer. A channel's job is to + * transfer cells from Tor instance to Tor instance. + * Currently, there is only one implementation of the channel abstraction: in + * channeltls.c. **/ /* diff --git a/src/or/channel.h b/src/or/channel.h index 5fa2aa8ab7..1fb431015d 100644 --- a/src/or/channel.h +++ b/src/or/channel.h @@ -1,4 +1,4 @@ -/* * Copyright (c) 2012-2015, The Tor Project, Inc. */ +/* * Copyright (c) 2012-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** diff --git a/src/or/channeltls.c b/src/or/channeltls.c index f0333e8da8..30165bfcf2 100644 --- a/src/or/channeltls.c +++ b/src/or/channeltls.c @@ -1,9 +1,11 @@ -/* * Copyright (c) 2012-2015, The Tor Project, Inc. */ +/* * Copyright (c) 2012-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** * \file channeltls.c - * \brief channel_t concrete subclass using or_connection_t + * + * \brief A concrete subclass of channel_t using or_connection_t to transfer + * cells between Tor instances. **/ /* @@ -1819,7 +1821,8 @@ channel_tls_process_certs_cell(var_cell_t *cell, channel_tls_t *chan) chan->conn->handshake_state->authenticated = 1; { - const digests_t *id_digests = tor_x509_cert_get_id_digests(id_cert); + const common_digests_t *id_digests = + tor_x509_cert_get_id_digests(id_cert); crypto_pk_t *identity_rcvd; if (!id_digests) ERR("Couldn't compute digests for key in ID cert"); @@ -2109,7 +2112,7 @@ channel_tls_process_authenticate_cell(var_cell_t *cell, channel_tls_t *chan) { crypto_pk_t *identity_rcvd = tor_tls_cert_get_key(chan->conn->handshake_state->id_cert); - const digests_t *id_digests = + const common_digests_t *id_digests = tor_x509_cert_get_id_digests(chan->conn->handshake_state->id_cert); /* This must exist; we checked key type when reading the cert. */ diff --git a/src/or/channeltls.h b/src/or/channeltls.h index a0df9faac2..a4d9c7a095 100644 --- a/src/or/channeltls.h +++ b/src/or/channeltls.h @@ -1,4 +1,4 @@ -/* * Copyright (c) 2012-2015, The Tor Project, Inc. */ +/* * Copyright (c) 2012-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** diff --git a/src/or/circpathbias.c b/src/or/circpathbias.c index a0115cc6ec..552947eba2 100644 --- a/src/or/circpathbias.c +++ b/src/or/circpathbias.c @@ -1,9 +1,18 @@ /* Copyright (c) 2001 Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ +/** + * \file circpathbias.c + * + * \brief Code to track success/failure rates of circuits built through + * different tor nodes, in an attempt to detect attacks where + * an attacker deliberately causes circuits to fail until the client + * choses a path they like. + */ + #include "or.h" #include "channel.h" #include "circpathbias.h" diff --git a/src/or/circpathbias.h b/src/or/circpathbias.h index 9e973850d5..ce76689d5f 100644 --- a/src/or/circpathbias.h +++ b/src/or/circpathbias.h @@ -1,7 +1,7 @@ /* Copyright (c) 2001 Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** diff --git a/src/or/circuitbuild.c b/src/or/circuitbuild.c index 719d27caa9..baa7bad2e6 100644 --- a/src/or/circuitbuild.c +++ b/src/or/circuitbuild.c @@ -1,12 +1,14 @@ /* Copyright (c) 2001 Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** * \file circuitbuild.c - * \brief The actual details of building circuits. + * + * \brief Implements the details of building circuits (by chosing paths, + * constructing/sending create/extend cells, and so on). **/ #define CIRCUITBUILD_PRIVATE @@ -1778,7 +1780,7 @@ pick_tor2web_rendezvous_node(router_crn_flags_t flags, router_add_running_nodes_to_smartlist(all_live_nodes, allow_invalid, 0, 0, 0, - need_desc); + need_desc, 0); /* Filter all_live_nodes to only add live *and* whitelisted RPs to * the list whitelisted_live_rps. */ @@ -2144,7 +2146,9 @@ choose_good_entry_server(uint8_t purpose, cpath_build_state_t *state) const node_t *choice; smartlist_t *excluded; const or_options_t *options = get_options(); - router_crn_flags_t flags = CRN_NEED_GUARD|CRN_NEED_DESC; + /* If possible, choose an entry server with a preferred address, + * otherwise, choose one with an allowed address */ + router_crn_flags_t flags = CRN_NEED_GUARD|CRN_NEED_DESC|CRN_PREF_ADDR; const node_t *node; if (state && options->UseEntryGuards && @@ -2161,14 +2165,6 @@ choose_good_entry_server(uint8_t purpose, cpath_build_state_t *state) * family. */ nodelist_add_node_and_family(excluded, node); } - if (firewall_is_fascist_or()) { - /* Exclude all ORs that we can't reach through our firewall */ - smartlist_t *nodes = nodelist_get_list(); - SMARTLIST_FOREACH(nodes, const node_t *, node, { - if (!fascist_firewall_allows_node(node)) - smartlist_add(excluded, (void*)node); - }); - } /* and exclude current entry guards and their families, * unless we're in a test network, and excluding guards * would exclude all nodes (i.e. we're in an incredibly small tor network, @@ -2247,9 +2243,11 @@ onion_extend_cpath(origin_circuit_t *circ) if (r) { /* If we're a client, use the preferred address rather than the primary address, for potentially connecting to an IPv6 OR - port. */ - info = extend_info_from_node(r, server_mode(get_options()) == 0); - tor_assert(info); + port. Servers always want the primary (IPv4) address. */ + int client = (server_mode(get_options()) == 0); + info = extend_info_from_node(r, client); + /* Clients can fail to find an allowed address */ + tor_assert(info || client); } } else { const node_t *r = @@ -2324,33 +2322,43 @@ extend_info_new(const char *nickname, const char *digest, * <b>for_direct_connect</b> is true, in which case the preferred * address is used instead. May return NULL if there is not enough * info about <b>node</b> to extend to it--for example, if there is no - * routerinfo_t or microdesc_t. + * routerinfo_t or microdesc_t, or if for_direct_connect is true and none of + * the node's addresses are allowed by tor's firewall and IP version config. **/ extend_info_t * extend_info_from_node(const node_t *node, int for_direct_connect) { tor_addr_port_t ap; + int valid_addr = 0; if (node->ri == NULL && (node->rs == NULL || node->md == NULL)) return NULL; + /* Choose a preferred address first, but fall back to an allowed address. + * choose_address returns 1 on success, but get_prim_orport returns 0. */ if (for_direct_connect) - node_get_pref_orport(node, &ap); + valid_addr = fascist_firewall_choose_address_node(node, + FIREWALL_OR_CONNECTION, + 0, &ap); else - node_get_prim_orport(node, &ap); + valid_addr = !node_get_prim_orport(node, &ap); - log_debug(LD_CIRC, "using %s for %s", - fmt_addrport(&ap.addr, ap.port), - node->ri ? node->ri->nickname : node->rs->nickname); + if (valid_addr) + log_debug(LD_CIRC, "using %s for %s", + fmt_addrport(&ap.addr, ap.port), + node->ri ? node->ri->nickname : node->rs->nickname); + else + log_warn(LD_CIRC, "Could not choose valid address for %s", + node->ri ? node->ri->nickname : node->rs->nickname); - if (node->ri) + if (valid_addr && node->ri) return extend_info_new(node->ri->nickname, node->identity, node->ri->onion_pkey, node->ri->onion_curve25519_pkey, &ap.addr, ap.port); - else if (node->rs && node->md) + else if (valid_addr && node->rs && node->md) return extend_info_new(node->rs->nickname, node->identity, node->md->onion_pkey, diff --git a/src/or/circuitbuild.h b/src/or/circuitbuild.h index 01563791b7..e9c1d77d94 100644 --- a/src/or/circuitbuild.h +++ b/src/or/circuitbuild.h @@ -1,7 +1,7 @@ /* Copyright (c) 2001 Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** diff --git a/src/or/circuitlist.c b/src/or/circuitlist.c index dcbeb1e2bb..d6532ddc5f 100644 --- a/src/or/circuitlist.c +++ b/src/or/circuitlist.c @@ -1,12 +1,13 @@ /* Copyright 2001 Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** * \file circuitlist.c - * \brief Manage the global circuit list. + * + * \brief Manage the global circuit list, and looking up circuits within it. **/ #define CIRCUITLIST_PRIVATE #include "or.h" @@ -53,6 +54,7 @@ static void cpath_ref_decref(crypt_path_reference_t *cpath_ref); //static void circuit_set_rend_token(or_circuit_t *circ, int is_rend_circ, // const uint8_t *token); static void circuit_clear_rend_token(or_circuit_t *circ); +static void circuit_about_to_free_atexit(circuit_t *circ); static void circuit_about_to_free(circuit_t *circ); /********* END VARIABLES ************/ @@ -901,6 +903,7 @@ circuit_free_all(void) } } tmp->global_circuitlist_idx = -1; + circuit_about_to_free_atexit(tmp); circuit_free(tmp); SMARTLIST_DEL_CURRENT(lst, tmp); } SMARTLIST_FOREACH_END(tmp); @@ -1744,6 +1747,32 @@ circuit_mark_for_close_, (circuit_t *circ, int reason, int line, smartlist_add(circuits_pending_close, circ); } +/** Called immediately before freeing a marked circuit <b>circ</b> from + * circuit_free_all() while shutting down Tor; this is a safe-at-shutdown + * version of circuit_about_to_free(). It's important that it at least + * do circuitmux_detach_circuit() when appropriate. + */ +static void +circuit_about_to_free_atexit(circuit_t *circ) +{ + + if (circ->n_chan) { + circuit_clear_cell_queue(circ, circ->n_chan); + circuitmux_detach_circuit(circ->n_chan->cmux, circ); + circuit_set_n_circid_chan(circ, 0, NULL); + } + + if (! CIRCUIT_IS_ORIGIN(circ)) { + or_circuit_t *or_circ = TO_OR_CIRCUIT(circ); + + if (or_circ->p_chan) { + circuit_clear_cell_queue(circ, or_circ->p_chan); + circuitmux_detach_circuit(or_circ->p_chan->cmux, circ); + circuit_set_p_circid_chan(or_circ, 0, NULL); + } + } +} + /** Called immediately before freeing a marked circuit <b>circ</b>. * Disconnects the circuit from other data structures, launches events * as appropriate, and performs other housekeeping. diff --git a/src/or/circuitlist.h b/src/or/circuitlist.h index 4e600da57d..e4f1f47ce6 100644 --- a/src/or/circuitlist.h +++ b/src/or/circuitlist.h @@ -1,7 +1,7 @@ /* Copyright (c) 2001 Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** diff --git a/src/or/circuitmux.c b/src/or/circuitmux.c index 94d1eb66e3..cc1c4cd401 100644 --- a/src/or/circuitmux.c +++ b/src/or/circuitmux.c @@ -1,4 +1,4 @@ -/* * Copyright (c) 2012-2015, The Tor Project, Inc. */ +/* * Copyright (c) 2012-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** diff --git a/src/or/circuitmux.h b/src/or/circuitmux.h index 837e3961bf..00745ac4a1 100644 --- a/src/or/circuitmux.h +++ b/src/or/circuitmux.h @@ -1,4 +1,4 @@ -/* * Copyright (c) 2012-2015, The Tor Project, Inc. */ +/* * Copyright (c) 2012-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** diff --git a/src/or/circuitmux_ewma.c b/src/or/circuitmux_ewma.c index 0c61fb2ec4..b784a140ac 100644 --- a/src/or/circuitmux_ewma.c +++ b/src/or/circuitmux_ewma.c @@ -1,4 +1,4 @@ -/* * Copyright (c) 2012-2015, The Tor Project, Inc. */ +/* * Copyright (c) 2012-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** diff --git a/src/or/circuitmux_ewma.h b/src/or/circuitmux_ewma.h index 3feef834dd..58aac1e196 100644 --- a/src/or/circuitmux_ewma.h +++ b/src/or/circuitmux_ewma.h @@ -1,4 +1,4 @@ -/* * Copyright (c) 2012-2015, The Tor Project, Inc. */ +/* * Copyright (c) 2012-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** diff --git a/src/or/circuitstats.c b/src/or/circuitstats.c index 3ced5afad5..9ac2d565b5 100644 --- a/src/or/circuitstats.c +++ b/src/or/circuitstats.c @@ -1,9 +1,16 @@ /* Copyright (c) 2001 Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ +/** + * \file circuitstats.c + * + * \brief Maintains and analyzes statistics about circuit built times, so we + * can tell how long we may need to wait for a fast circuit to be constructed. + */ + #define CIRCUITSTATS_PRIVATE #include "or.h" diff --git a/src/or/circuitstats.h b/src/or/circuitstats.h index fe05a24e97..72b160983f 100644 --- a/src/or/circuitstats.h +++ b/src/or/circuitstats.h @@ -1,7 +1,7 @@ /* Copyright (c) 2001 Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** diff --git a/src/or/circuituse.c b/src/or/circuituse.c index 05201a5473..64fcc30057 100644 --- a/src/or/circuituse.c +++ b/src/or/circuituse.c @@ -1,7 +1,7 @@ /* Copyright (c) 2001 Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** @@ -2006,8 +2006,13 @@ circuit_get_open_circ_or_launch(entry_connection_t *conn, if (r && node_has_descriptor(r)) { /* We might want to connect to an IPv6 bridge for loading descriptors so we use the preferred address rather than - the primary. */ + the primary. */ extend_info = extend_info_from_node(r, conn->want_onehop ? 1 : 0); + if (!extend_info) { + log_warn(LD_CIRC,"Could not make a one-hop connection to %s. " + "Discarding this circuit.", conn->chosen_exit_name); + return -1; + } } else { log_debug(LD_DIR, "considering %d, %s", want_onehop, conn->chosen_exit_name); diff --git a/src/or/circuituse.h b/src/or/circuituse.h index a59f478ac8..5973978c45 100644 --- a/src/or/circuituse.h +++ b/src/or/circuituse.h @@ -1,7 +1,7 @@ /* Copyright (c) 2001 Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** diff --git a/src/or/command.c b/src/or/command.c index af6e0533d8..5ad92bed1e 100644 --- a/src/or/command.c +++ b/src/or/command.c @@ -1,7 +1,7 @@ /* Copyright (c) 2001 Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** diff --git a/src/or/command.h b/src/or/command.h index bea96261bb..12cda6a463 100644 --- a/src/or/command.h +++ b/src/or/command.h @@ -1,7 +1,7 @@ /* Copyright (c) 2001 Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** diff --git a/src/or/config.c b/src/or/config.c index d2d88159df..4f4b9dfbfd 100644 --- a/src/or/config.c +++ b/src/or/config.c @@ -1,7 +1,7 @@ /* Copyright (c) 2001 Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** @@ -190,10 +190,12 @@ static config_var_t option_vars_[] = { V(CircuitPriorityHalflife, DOUBLE, "-100.0"), /*negative:'Use default'*/ V(ClientDNSRejectInternalAddresses, BOOL,"1"), V(ClientOnly, BOOL, "0"), - V(ClientPreferIPv6ORPort, BOOL, "0"), + V(ClientPreferIPv6ORPort, AUTOBOOL, "auto"), + V(ClientPreferIPv6DirPort, AUTOBOOL, "auto"), V(ClientRejectInternalAddresses, BOOL, "1"), V(ClientTransportPlugin, LINELIST, NULL), V(ClientUseIPv6, BOOL, "0"), + V(ClientUseIPv4, BOOL, "1"), V(ConsensusParams, STRING, NULL), V(ConnLimit, UINT, "1000"), V(ConnDirectionStatistics, BOOL, "0"), @@ -2193,7 +2195,7 @@ print_usage(void) printf( "Copyright (c) 2001-2004, Roger Dingledine\n" "Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson\n" -"Copyright (c) 2007-2015, The Tor Project, Inc.\n\n" +"Copyright (c) 2007-2016, The Tor Project, Inc.\n\n" "tor -f <torrc> [args]\n" "See man page for options, or https://www.torproject.org/ for " "documentation.\n"); @@ -2691,7 +2693,7 @@ options_validate_cb(void *old_options, void *options, void *default_options, /** Log a warning message iff <b>filepath</b> is not absolute. * Warning message must contain option name <b>option</b> and - * an absolute path that <b>filepath<b> will resolve to. + * an absolute path that <b>filepath</b> will resolve to. * * In case <b>filepath</b> is absolute, do nothing. */ @@ -2859,7 +2861,7 @@ options_validate(or_options_t *old_options, or_options_t *options, options->TransProxyType_parsed = TPT_TPROXY; #endif } else if (!strcasecmp(options->TransProxyType, "ipfw")) { -#if !defined(__FreeBSD__) && !defined( DARWIN ) +#ifndef KERNEL_MAY_SUPPORT_IPFW /* Earlier versions of OS X have ipfw */ REJECT("ipfw is a FreeBSD-specific" "and OS X/Darwin-specific feature."); @@ -3078,6 +3080,8 @@ options_validate(or_options_t *old_options, or_options_t *options, } } + /* Terminate Reachable*Addresses with reject * + */ for (i=0; i<3; i++) { config_line_t **linep = (i==0) ? &options->ReachableAddresses : @@ -3087,8 +3091,6 @@ options_validate(or_options_t *old_options, or_options_t *options, continue; /* We need to end with a reject *:*, not an implicit accept *:* */ for (;;) { - if (!strcmp((*linep)->value, "reject *:*")) /* already there */ - break; linep = &((*linep)->next); if (!*linep) { *linep = tor_malloc_zero(sizeof(config_line_t)); @@ -3104,11 +3106,29 @@ options_validate(or_options_t *old_options, or_options_t *options, if ((options->ReachableAddresses || options->ReachableORAddresses || - options->ReachableDirAddresses) && + options->ReachableDirAddresses || + options->ClientUseIPv4 == 0) && server_mode(options)) REJECT("Servers must be able to freely connect to the rest " "of the Internet, so they must not set Reachable*Addresses " - "or FascistFirewall."); + "or FascistFirewall or FirewallPorts or ClientUseIPv4 0."); + + /* We check if Reachable*Addresses blocks all addresses in + * parse_reachable_addresses(). */ + +#define WARN_PLEASE_USE_IPV6_LOG_MSG \ + "ClientPreferIPv6%sPort 1 is ignored unless tor is using IPv6. " \ + "Please set ClientUseIPv6 1, ClientUseIPv4 0, or configure bridges." + + if (!fascist_firewall_use_ipv6(options) + && options->ClientPreferIPv6ORPort == 1) + log_warn(LD_CONFIG, WARN_PLEASE_USE_IPV6_LOG_MSG, "OR"); + + if (!fascist_firewall_use_ipv6(options) + && options->ClientPreferIPv6DirPort == 1) + log_warn(LD_CONFIG, WARN_PLEASE_USE_IPV6_LOG_MSG, "Dir"); + +#undef WARN_PLEASE_USE_IPV6_LOG_MSG if (options->UseBridges && server_mode(options)) @@ -6353,6 +6373,7 @@ parse_port_config(smartlist_t *out, tor_free(addrtmp); goto err; } + tor_free(addrtmp); } else { /* Try parsing integer port before address, because, who knows? "9050" might be a valid address. */ diff --git a/src/or/config.h b/src/or/config.h index c7ce57d2aa..02121cf95c 100644 --- a/src/or/config.h +++ b/src/or/config.h @@ -1,7 +1,7 @@ /* Copyright (c) 2001 Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** @@ -14,6 +14,10 @@ #include "testsupport.h" +#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(DARWIN) +#define KERNEL_MAY_SUPPORT_IPFW +#endif + MOCK_DECL(const char*, get_dirportfrontpage, (void)); MOCK_DECL(const or_options_t *, get_options, (void)); MOCK_DECL(or_options_t *, get_options_mutable, (void)); diff --git a/src/or/confparse.c b/src/or/confparse.c index ac21df25cb..4f446d07c3 100644 --- a/src/or/confparse.c +++ b/src/or/confparse.c @@ -1,9 +1,16 @@ /* Copyright (c) 2001 Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ +/** + * \file confparse.c + * + * \brief Back-end for parsing and generating key-value files, used to + * implement the torrc file format and the state file. + */ + #include "or.h" #include "confparse.h" #include "routerset.h" diff --git a/src/or/confparse.h b/src/or/confparse.h index 83c0f75b52..885c615202 100644 --- a/src/or/confparse.h +++ b/src/or/confparse.h @@ -1,7 +1,7 @@ /* Copyright (c) 2001 Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #ifndef TOR_CONFPARSE_H diff --git a/src/or/connection.c b/src/or/connection.c index 123c33a876..2e1c508894 100644 --- a/src/or/connection.c +++ b/src/or/connection.c @@ -1,7 +1,7 @@ /* Copyright (c) 2001 Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** @@ -19,6 +19,7 @@ */ #define TOR_CHANNEL_INTERNAL_ #define CONNECTION_PRIVATE +#include "backtrace.h" #include "channel.h" #include "channeltls.h" #include "circuitbuild.h" @@ -37,6 +38,7 @@ #include "ext_orport.h" #include "geoip.h" #include "main.h" +#include "nodelist.h" #include "policies.h" #include "reasons.h" #include "relay.h" @@ -44,6 +46,7 @@ #include "rendcommon.h" #include "rephist.h" #include "router.h" +#include "routerlist.h" #include "transports.h" #include "routerparse.h" #include "transports.h" @@ -1058,6 +1061,31 @@ make_socket_reuseable(tor_socket_t sock) #endif } +#ifdef _WIN32 +/** Tell the Windows TCP stack to prevent other applications from receiving + * traffic from tor's open ports. Return 0 on success, -1 on failure. */ +static int +make_win32_socket_exclusive(tor_socket_t sock) +{ +#ifdef SO_EXCLUSIVEADDRUSE + int one=1; + + /* Any socket that sets REUSEADDR on win32 can bind to a port _even when + * somebody else already has it bound_, and _even if the original socket + * didn't set REUSEADDR_. Use EXCLUSIVEADDRUSE to prevent this port-stealing + * on win32. */ + if (setsockopt(sock, SOL_SOCKET, SO_EXCLUSIVEADDRUSE, (void*) &one, + (socklen_t)sizeof(one))) { + return -1; + } + return 0; +#else + (void) sock; + return 0; +#endif +} +#endif + /** Max backlog to pass to listen. We start at */ static int listen_limit = INT_MAX; @@ -1111,7 +1139,6 @@ connection_listener_new(const struct sockaddr *listensockaddr, start_reading = 1; tor_addr_from_sockaddr(&addr, listensockaddr, &usePort); - log_notice(LD_NET, "Opening %s on %s", conn_type_to_string(type), fmt_addrport(&addr, usePort)); @@ -1135,6 +1162,14 @@ connection_listener_new(const struct sockaddr *listensockaddr, tor_socket_strerror(errno)); } +#ifdef _WIN32 + if (make_win32_socket_exclusive(s) < 0) { + log_warn(LD_NET, "Error setting SO_EXCLUSIVEADDRUSE flag on %s: %s", + conn_type_to_string(type), + tor_socket_strerror(errno)); + } +#endif + #if defined(USE_TRANSPARENT) && defined(IP_TRANSPARENT) if (options->TransProxyType_parsed == TPT_TPROXY && type == CONN_TYPE_AP_TRANS_LISTENER) { @@ -1715,6 +1750,74 @@ connection_connect_sockaddr,(connection_t *conn, return inprogress ? 0 : 1; } +/* Log a message if connection attempt is made when IPv4 or IPv6 is disabled. + * Log a less severe message if we couldn't conform to ClientPreferIPv6ORPort + * or ClientPreferIPv6ORPort. */ +static void +connection_connect_log_client_use_ip_version(const connection_t *conn) +{ + const or_options_t *options = get_options(); + + /* Only clients care about ClientUseIPv4/6, bail out early on servers, and + * on connections we don't care about */ + if (server_mode(options) || !conn || conn->type == CONN_TYPE_EXIT) { + return; + } + + /* We're only prepared to log OR and DIR connections here */ + if (conn->type != CONN_TYPE_OR && conn->type != CONN_TYPE_DIR) { + return; + } + + const int must_ipv4 = !fascist_firewall_use_ipv6(options); + const int must_ipv6 = (options->ClientUseIPv4 == 0); + const int pref_ipv6 = (conn->type == CONN_TYPE_OR + ? fascist_firewall_prefer_ipv6_orport(options) + : fascist_firewall_prefer_ipv6_dirport(options)); + tor_addr_t real_addr; + tor_addr_make_null(&real_addr, AF_UNSPEC); + + /* OR conns keep the original address in real_addr, as addr gets overwritten + * with the descriptor address */ + if (conn->type == CONN_TYPE_OR) { + const or_connection_t *or_conn = TO_OR_CONN((connection_t *)conn); + tor_addr_copy(&real_addr, &or_conn->real_addr); + } else if (conn->type == CONN_TYPE_DIR) { + tor_addr_copy(&real_addr, &conn->addr); + } + + /* Check if we broke a mandatory address family restriction */ + if ((must_ipv4 && tor_addr_family(&real_addr) == AF_INET6) + || (must_ipv6 && tor_addr_family(&real_addr) == AF_INET)) { + log_warn(LD_BUG, "%s connection to %s violated ClientUseIPv%s 0.", + conn->type == CONN_TYPE_OR ? "OR" : "Dir", + fmt_addr(&real_addr), + options->ClientUseIPv4 == 0 ? "4" : "6"); + log_backtrace(LOG_WARN, LD_BUG, "Address came from"); + } + + /* Bridges are allowed to break IPv4/IPv6 ORPort preferences to connect to + * the node's configured address when ClientPreferIPv6ORPort is auto */ + if (options->UseBridges && conn->type == CONN_TYPE_OR + && options->ClientPreferIPv6ORPort == -1) { + return; + } + + /* Check if we couldn't satisfy an address family preference */ + if ((!pref_ipv6 && tor_addr_family(&real_addr) == AF_INET6) + || (pref_ipv6 && tor_addr_family(&real_addr) == AF_INET)) { + log_info(LD_NET, "Connection to %s doesn't satisfy ClientPreferIPv6%sPort " + "%d, with ClientUseIPv4 %d, and fascist_firewall_use_ipv6 %d " + "(ClientUseIPv6 %d and UseBridges %d).", + fmt_addr(&real_addr), + conn->type == CONN_TYPE_OR ? "OR" : "Dir", + conn->type == CONN_TYPE_OR ? options->ClientPreferIPv6ORPort + : options->ClientPreferIPv6DirPort, + options->ClientUseIPv4, fascist_firewall_use_ipv6(options), + options->ClientUseIPv6, options->UseBridges); + } +} + /** Take conn, make a nonblocking socket; try to connect to * addr:port (port arrives in *host order*). If fail, return -1 and if * applicable put your best guess about errno into *<b>socket_error</b>. @@ -1739,6 +1842,10 @@ connection_connect(connection_t *conn, const char *address, const or_options_t *options = get_options(); int protocol_family; + /* Log if we didn't stick to ClientUseIPv4/6 or ClientPreferIPv6OR/DirPort + */ + connection_connect_log_client_use_ip_version(conn); + if (tor_addr_family(addr) == AF_INET6) protocol_family = PF_INET6; else @@ -2398,7 +2505,8 @@ retry_listener_ports(smartlist_t *old_conns, /* We don't need to be root to create a UNIX socket, so defer until after * setuid. */ const or_options_t *options = get_options(); - if (port->is_unix_addr && !geteuid() && strcmp(options->User, "root")) + if (port->is_unix_addr && !geteuid() && (options->User) && + strcmp(options->User, "root")) continue; #endif @@ -4246,10 +4354,10 @@ connection_write_to_buf_impl_,(const char *string, size_t len, /** Return a connection with given type, address, port, and purpose; * or NULL if no such connection exists (or if all such connections are marked * for close). */ -connection_t * -connection_get_by_type_addr_port_purpose(int type, +MOCK_IMPL(connection_t *, +connection_get_by_type_addr_port_purpose,(int type, const tor_addr_t *addr, uint16_t port, - int purpose) + int purpose)) { CONN_GET_TEMPLATE(conn, (conn->type == type && diff --git a/src/or/connection.h b/src/or/connection.h index 59ea6d898e..45175cd5a2 100644 --- a/src/or/connection.h +++ b/src/or/connection.h @@ -1,7 +1,7 @@ /* Copyright (c) 2001 Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** @@ -186,9 +186,9 @@ connection_get_outbuf_len(connection_t *conn) connection_t *connection_get_by_global_id(uint64_t id); connection_t *connection_get_by_type(int type); -connection_t *connection_get_by_type_addr_port_purpose(int type, - const tor_addr_t *addr, - uint16_t port, int purpose); +MOCK_DECL(connection_t *,connection_get_by_type_addr_port_purpose,(int type, + const tor_addr_t *addr, + uint16_t port, int purpose)); connection_t *connection_get_by_type_state(int type, int state); connection_t *connection_get_by_type_state_rendquery(int type, int state, const char *rendquery); diff --git a/src/or/connection_edge.c b/src/or/connection_edge.c index dd81142094..f680e1da83 100644 --- a/src/or/connection_edge.c +++ b/src/or/connection_edge.c @@ -1,7 +1,7 @@ /* Copyright (c) 2001 Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** diff --git a/src/or/connection_edge.h b/src/or/connection_edge.h index 2aba801461..5dfc8af901 100644 --- a/src/or/connection_edge.h +++ b/src/or/connection_edge.h @@ -1,7 +1,7 @@ /* Copyright (c) 2001 Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** diff --git a/src/or/connection_or.c b/src/or/connection_or.c index 29e8153d89..f39d5b2255 100644 --- a/src/or/connection_or.c +++ b/src/or/connection_or.c @@ -1,7 +1,7 @@ /* Copyright (c) 2001 Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** @@ -2318,7 +2318,7 @@ connection_or_compute_authenticate_cell_body(or_connection_t *conn, { const tor_x509_cert_t *id_cert=NULL, *link_cert=NULL; - const digests_t *my_digests, *their_digests; + const common_digests_t *my_digests, *their_digests; const uint8_t *my_id, *their_id, *client_id, *server_id; if (tor_tls_get_my_certs(server, &link_cert, &id_cert)) goto err; diff --git a/src/or/connection_or.h b/src/or/connection_or.h index 3877fd5a13..a4b10debb4 100644 --- a/src/or/connection_or.h +++ b/src/or/connection_or.h @@ -1,7 +1,7 @@ /* Copyright (c) 2001 Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** diff --git a/src/or/control.c b/src/or/control.c index 66182fe2a4..2bec8f9317 100644 --- a/src/or/control.c +++ b/src/or/control.c @@ -1,5 +1,5 @@ /* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** @@ -2864,12 +2864,26 @@ handle_control_extendcircuit(control_connection_t *conn, uint32_t len, } /* now circ refers to something that is ready to be extended */ + int first_node = zero_circ; SMARTLIST_FOREACH(nodes, const node_t *, node, { - extend_info_t *info = extend_info_from_node(node, 0); - tor_assert(info); /* True, since node_has_descriptor(node) == true */ + extend_info_t *info = extend_info_from_node(node, first_node); + if (first_node && !info) { + log_warn(LD_CONTROL, + "controller tried to connect to a node that doesn't have any " + "addresses that are allowed by the firewall configuration; " + "circuit marked for closing."); + circuit_mark_for_close(TO_CIRCUIT(circ), -END_CIRC_REASON_CONNECTFAILED); + connection_write_str_to_buf("551 Couldn't start circuit\r\n", conn); + goto done; + } else { + /* True, since node_has_descriptor(node) == true and we are extending + * to the node's primary address */ + tor_assert(info); + } circuit_append_new_exit(circ, info); extend_info_free(info); + first_node = 0; }); /* now that we've populated the cpath, start extending */ @@ -6370,6 +6384,7 @@ control_event_hs_descriptor_receive_end(const char *action, */ void control_event_hs_descriptor_upload_end(const char *action, + const char *onion_address, const char *id_digest, const char *reason) { @@ -6386,8 +6401,9 @@ control_event_hs_descriptor_upload_end(const char *action, } send_control_event(EVENT_HS_DESC, - "650 HS_DESC %s UNKNOWN UNKNOWN %s%s\r\n", + "650 HS_DESC %s %s UNKNOWN %s%s\r\n", action, + rend_hsaddress_str_or_unknown(onion_address), node_describe_longname_by_id(id_digest), reason_field ? reason_field : ""); @@ -6417,14 +6433,17 @@ control_event_hs_descriptor_received(const char *onion_address, * called when we successfully uploaded a hidden service descriptor. */ void -control_event_hs_descriptor_uploaded(const char *id_digest) +control_event_hs_descriptor_uploaded(const char *id_digest, + const char *onion_address) { if (!id_digest) { log_warn(LD_BUG, "Called with id_digest==%p", id_digest); return; } - control_event_hs_descriptor_upload_end("UPLOADED", id_digest, NULL); + + control_event_hs_descriptor_upload_end("UPLOADED", onion_address, + id_digest, NULL); } /** Send HS_DESC event to inform controller that query <b>rend_query</b> @@ -6486,6 +6505,7 @@ control_event_hs_descriptor_content(const char *onion_address, */ void control_event_hs_descriptor_upload_failed(const char *id_digest, + const char *onion_address, const char *reason) { if (!id_digest) { @@ -6493,7 +6513,7 @@ control_event_hs_descriptor_upload_failed(const char *id_digest, id_digest); return; } - control_event_hs_descriptor_upload_end("UPLOAD_FAILED", + control_event_hs_descriptor_upload_end("UPLOAD_FAILED", onion_address, id_digest, reason); } diff --git a/src/or/control.h b/src/or/control.h index 1f8e2bcdc6..008bfb1c3b 100644 --- a/src/or/control.h +++ b/src/or/control.h @@ -1,7 +1,7 @@ /* Copyright (c) 2001 Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** @@ -129,16 +129,19 @@ void control_event_hs_descriptor_receive_end(const char *action, const char *id_digest, const char *reason); void control_event_hs_descriptor_upload_end(const char *action, + const char *onion_address, const char *hs_dir, const char *reason); void control_event_hs_descriptor_received(const char *onion_address, const rend_data_t *rend_data, const char *id_digest); -void control_event_hs_descriptor_uploaded(const char *hs_dir); +void control_event_hs_descriptor_uploaded(const char *hs_dir, + const char *onion_address); void control_event_hs_descriptor_failed(const rend_data_t *rend_data, const char *id_digest, const char *reason); void control_event_hs_descriptor_upload_failed(const char *hs_dir, + const char *onion_address, const char *reason); void control_event_hs_descriptor_content(const char *onion_address, const char *desc_id, diff --git a/src/or/cpuworker.c b/src/or/cpuworker.c index 76d97e05f2..3109d5a177 100644 --- a/src/or/cpuworker.c +++ b/src/or/cpuworker.c @@ -1,6 +1,6 @@ /* Copyright (c) 2003-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** diff --git a/src/or/cpuworker.h b/src/or/cpuworker.h index 70a595e472..62cf0eb164 100644 --- a/src/or/cpuworker.h +++ b/src/or/cpuworker.h @@ -1,7 +1,7 @@ /* Copyright (c) 2001 Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** diff --git a/src/or/dircollate.c b/src/or/dircollate.c index 4c812c40e6..b5fe632831 100644 --- a/src/or/dircollate.c +++ b/src/or/dircollate.c @@ -1,6 +1,6 @@ /* Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2014, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** diff --git a/src/or/dircollate.h b/src/or/dircollate.h index cd1e8ac96d..8d4dc2cabe 100644 --- a/src/or/dircollate.h +++ b/src/or/dircollate.h @@ -1,7 +1,7 @@ /* Copyright (c) 2001 Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2014, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** diff --git a/src/or/directory.c b/src/or/directory.c index c1fa37f242..e4feda44fc 100644 --- a/src/or/directory.c +++ b/src/or/directory.c @@ -1,9 +1,10 @@ /* Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #include "or.h" +#include "backtrace.h" #include "buffers.h" #include "circuitbuild.h" #include "config.h" @@ -82,18 +83,18 @@ static void dir_microdesc_download_failed(smartlist_t *failed, static void note_client_request(int purpose, int compressed, size_t bytes); static int client_likes_consensus(networkstatus_t *v, const char *want_url); -static void directory_initiate_command_rend(const tor_addr_t *addr, - uint16_t or_port, - uint16_t dir_port, - const char *digest, - uint8_t dir_purpose, - uint8_t router_purpose, - dir_indirection_t indirection, - const char *resource, - const char *payload, - size_t payload_len, - time_t if_modified_since, - const rend_data_t *rend_query); +static void directory_initiate_command_rend( + const tor_addr_port_t *or_addr_port, + const tor_addr_port_t *dir_addr_port, + const char *digest, + uint8_t dir_purpose, + uint8_t router_purpose, + dir_indirection_t indirection, + const char *resource, + const char *payload, + size_t payload_len, + time_t if_modified_since, + const rend_data_t *rend_query); /********* START VARIABLES **********/ @@ -313,7 +314,6 @@ directory_post_to_dirservers(uint8_t dir_purpose, uint8_t router_purpose, SMARTLIST_FOREACH_BEGIN(dirservers, dir_server_t *, ds) { routerstatus_t *rs = &(ds->fake_status); size_t upload_len = payload_len; - tor_addr_t ds_addr; if ((type & ds->type) == 0) continue; @@ -344,11 +344,12 @@ directory_post_to_dirservers(uint8_t dir_purpose, uint8_t router_purpose, log_info(LD_DIR, "Uploading an extrainfo too (length %d)", (int) extrainfo_len); } - tor_addr_from_ipv4h(&ds_addr, ds->addr); if (purpose_needs_anonymity(dir_purpose, router_purpose)) { indirection = DIRIND_ANONYMOUS; - } else if (!fascist_firewall_allows_address_dir(&ds_addr,ds->dir_port)) { - if (fascist_firewall_allows_address_or(&ds_addr,ds->or_port)) + } else if (!fascist_firewall_allows_dir_server(ds, + FIREWALL_DIR_CONNECTION, + 0)) { + if (fascist_firewall_allows_dir_server(ds, FIREWALL_OR_CONNECTION, 0)) indirection = DIRIND_ONEHOP; else indirection = DIRIND_ANONYMOUS; @@ -496,11 +497,14 @@ MOCK_IMPL(void, directory_get_from_dirserver, ( const node_t *node = choose_random_dirguard(type); if (node && node->ri) { /* every bridge has a routerinfo. */ - tor_addr_t addr; routerinfo_t *ri = node->ri; - node_get_addr(node, &addr); - directory_initiate_command(&addr, - ri->or_port, 0/*no dirport*/, + /* clients always make OR connections to bridges */ + tor_addr_port_t or_ap; + /* we are willing to use a non-preferred address if we need to */ + fascist_firewall_choose_address_node(node, FIREWALL_OR_CONNECTION, 0, + &or_ap); + directory_initiate_command(&or_ap.addr, or_ap.port, + NULL, 0, /*no dirport*/ ri->cache_info.identity_digest, dir_purpose, router_purpose, @@ -609,6 +613,80 @@ dirind_is_anon(dir_indirection_t ind) return ind == DIRIND_ANON_DIRPORT || ind == DIRIND_ANONYMOUS; } +/* Choose reachable OR and Dir addresses and ports from status, copying them + * into use_or_ap and use_dir_ap. If indirection is anonymous, then we're + * connecting via another relay, so choose the primary IPv4 address and ports. + * + * status should have at least one reachable address, if we can't choose a + * reachable address, warn and return -1. Otherwise, return 0. + */ +static int +directory_choose_address_routerstatus(const routerstatus_t *status, + dir_indirection_t indirection, + tor_addr_port_t *use_or_ap, + tor_addr_port_t *use_dir_ap) +{ + tor_assert(status != NULL); + tor_assert(use_or_ap != NULL); + tor_assert(use_dir_ap != NULL); + + const int anonymized_connection = dirind_is_anon(indirection); + int have_or = 0, have_dir = 0; + + /* We expect status to have at least one reachable address if we're + * connecting to it directly. + * + * Therefore, we can simply use the other address if the one we want isn't + * allowed by the firewall. + * + * (When Tor uploads and downloads a hidden service descriptor, it uses + * DIRIND_ANONYMOUS, except for Tor2Web, which uses DIRIND_ONEHOP. + * So this code will only modify the address for Tor2Web's HS descriptor + * fetches. Even Single Onion Servers (NYI) use DIRIND_ANONYMOUS, to avoid + * HSDirs denying service by rejecting descriptors.) + */ + + /* Initialise the OR / Dir addresses */ + tor_addr_make_null(&use_or_ap->addr, AF_UNSPEC); + use_or_ap->port = 0; + tor_addr_make_null(&use_dir_ap->addr, AF_UNSPEC); + use_dir_ap->port = 0; + + if (anonymized_connection) { + /* Use the primary (IPv4) OR address if we're making an indirect + * connection. */ + tor_addr_from_ipv4h(&use_or_ap->addr, status->addr); + use_or_ap->port = status->or_port; + have_or = 1; + } else { + /* We use an IPv6 address if we have one and we prefer it. + * Use the preferred address and port if they are reachable, otherwise, + * use the alternate address and port (if any). + */ + have_or = fascist_firewall_choose_address_rs(status, + FIREWALL_OR_CONNECTION, 0, + use_or_ap); + } + + have_dir = fascist_firewall_choose_address_rs(status, + FIREWALL_DIR_CONNECTION, 0, + use_dir_ap); + + /* We rejected both addresses. This isn't great. */ + if (!have_or && !have_dir) { + log_warn(LD_BUG, "Rejected all OR and Dir addresses from %s when " + "launching a directory connection to: IPv4 %s OR %d Dir %d " + "IPv6 %s OR %d Dir %d", routerstatus_describe(status), + fmt_addr32(status->addr), status->or_port, + status->dir_port, fmt_addr(&status->ipv6_addr), + status->ipv6_orport, status->dir_port); + log_backtrace(LOG_WARN, LD_BUG, "Addresses came from"); + return -1; + } + + return 0; +} + /** Same as directory_initiate_command_routerstatus(), but accepts * rendezvous data to fetch a hidden service descriptor. */ void @@ -624,8 +702,11 @@ directory_initiate_command_routerstatus_rend(const routerstatus_t *status, { const or_options_t *options = get_options(); const node_t *node; - tor_addr_t addr; + tor_addr_port_t use_or_ap, use_dir_ap; const int anonymized_connection = dirind_is_anon(indirection); + + tor_assert(status != NULL); + node = node_get_by_id(status->identity_digest); if (!node && anonymized_connection) { @@ -634,7 +715,6 @@ directory_initiate_command_routerstatus_rend(const routerstatus_t *status, routerstatus_describe(status)); return; } - tor_addr_from_ipv4h(&addr, status->addr); if (options->ExcludeNodes && options->StrictNodes && routerset_contains_routerstatus(options->ExcludeNodes, status, -1)) { @@ -646,13 +726,30 @@ directory_initiate_command_routerstatus_rend(const routerstatus_t *status, return; } - directory_initiate_command_rend(&addr, - status->or_port, status->dir_port, - status->identity_digest, - dir_purpose, router_purpose, - indirection, resource, - payload, payload_len, if_modified_since, - rend_query); + /* At this point, if we are a clients making a direct connection to a + * directory server, we have selected a server that has at least one address + * allowed by ClientUseIPv4/6 and Reachable{"",OR,Dir}Addresses. This + * selection uses the preference in ClientPreferIPv6{OR,Dir}Port, if + * possible. (If UseBridges is set, clients always use IPv6, and prefer it + * by default.) + * + * Now choose an address that we can use to connect to the directory server. + */ + if (directory_choose_address_routerstatus(status, indirection, &use_or_ap, + &use_dir_ap) < 0) { + return; + } + + /* We don't retry the alternate OR/Dir address for the same directory if + * the address we choose fails (#6772). + * Instead, we'll retry another directory on failure. */ + + directory_initiate_command_rend(&use_or_ap, &use_dir_ap, + status->identity_digest, + dir_purpose, router_purpose, + indirection, resource, + payload, payload_len, if_modified_since, + rend_query); } /** Launch a new connection to the directory server <b>status</b> to @@ -874,27 +971,52 @@ directory_command_should_use_begindir(const or_options_t *options, if (indirection == DIRIND_DIRECT_CONN || indirection == DIRIND_ANON_DIRPORT) return 0; if (indirection == DIRIND_ONEHOP) - if (!fascist_firewall_allows_address_or(addr, or_port) || + if (!fascist_firewall_allows_address_addr(addr, or_port, + FIREWALL_OR_CONNECTION, 0, 0) || directory_fetches_from_authorities(options)) return 0; /* We're firewalled or are acting like a relay -- also no. */ return 1; } -/** Helper for directory_initiate_command_routerstatus: send the - * command to a server whose address is <b>address</b>, whose IP is - * <b>addr</b>, whose directory port is <b>dir_port</b>, whose tor version - * <b>supports_begindir</b>, and whose identity key digest is - * <b>digest</b>. */ +/** Helper for directory_initiate_command_rend: send the + * command to a server whose OR address/port is <b>or_addr</b>/<b>or_port</b>, + * whose directory address/port is <b>dir_addr</b>/<b>dir_port</b>, whose + * identity key digest is <b>digest</b>, with purposes <b>dir_purpose</b> and + * <b>router_purpose</b>, making an (in)direct connection as specified in + * <b>indirection</b>, with command <b>resource</b>, <b>payload</b> of + * <b>payload_len</b>, and asking for a result only <b>if_modified_since</b>. + */ void -directory_initiate_command(const tor_addr_t *_addr, - uint16_t or_port, uint16_t dir_port, +directory_initiate_command(const tor_addr_t *or_addr, uint16_t or_port, + const tor_addr_t *dir_addr, uint16_t dir_port, const char *digest, uint8_t dir_purpose, uint8_t router_purpose, dir_indirection_t indirection, const char *resource, const char *payload, size_t payload_len, time_t if_modified_since) { - directory_initiate_command_rend(_addr, or_port, dir_port, + tor_addr_port_t or_ap, dir_ap; + + /* Use the null tor_addr and 0 port if the address or port isn't valid. */ + if (tor_addr_port_is_valid(or_addr, or_port, 0)) { + tor_addr_copy(&or_ap.addr, or_addr); + or_ap.port = or_port; + } else { + /* the family doesn't matter here, so make it IPv4 */ + tor_addr_make_null(&or_ap.addr, AF_INET); + or_ap.port = or_port = 0; + } + + if (tor_addr_port_is_valid(dir_addr, dir_port, 0)) { + tor_addr_copy(&dir_ap.addr, dir_addr); + dir_ap.port = dir_port; + } else { + /* the family doesn't matter here, so make it IPv4 */ + tor_addr_make_null(&dir_ap.addr, AF_INET); + dir_ap.port = dir_port = 0; + } + + directory_initiate_command_rend(&or_ap, &dir_ap, digest, dir_purpose, router_purpose, indirection, resource, payload, payload_len, @@ -914,10 +1036,11 @@ is_sensitive_dir_purpose(uint8_t dir_purpose) } /** Same as directory_initiate_command(), but accepts rendezvous data to - * fetch a hidden service descriptor. */ + * fetch a hidden service descriptor, and takes its address & port arguments + * as tor_addr_port_t. */ static void -directory_initiate_command_rend(const tor_addr_t *_addr, - uint16_t or_port, uint16_t dir_port, +directory_initiate_command_rend(const tor_addr_port_t *or_addr_port, + const tor_addr_port_t *dir_addr_port, const char *digest, uint8_t dir_purpose, uint8_t router_purpose, dir_indirection_t indirection, @@ -926,29 +1049,34 @@ directory_initiate_command_rend(const tor_addr_t *_addr, time_t if_modified_since, const rend_data_t *rend_query) { + tor_assert(or_addr_port); + tor_assert(dir_addr_port); + tor_assert(or_addr_port->port || dir_addr_port->port); + tor_assert(digest); + dir_connection_t *conn; const or_options_t *options = get_options(); int socket_error = 0; - int use_begindir = directory_command_should_use_begindir(options, _addr, - or_port, router_purpose, indirection); + const int use_begindir = directory_command_should_use_begindir(options, + &or_addr_port->addr, or_addr_port->port, + router_purpose, indirection); const int anonymized_connection = dirind_is_anon(indirection); - tor_addr_t addr; - - tor_assert(_addr); - tor_assert(or_port || dir_port); - tor_assert(digest); + const int or_connection = use_begindir || anonymized_connection; - tor_addr_copy(&addr, _addr); + tor_addr_t addr; + tor_addr_copy(&addr, &(or_connection ? or_addr_port : dir_addr_port)->addr); + uint16_t port = (or_connection ? or_addr_port : dir_addr_port)->port; + uint16_t dir_port = dir_addr_port->port; log_debug(LD_DIR, "anonymized %d, use_begindir %d.", anonymized_connection, use_begindir); if (!dir_port && !use_begindir) { char ipaddr[TOR_ADDR_BUF_LEN]; - tor_addr_to_str(ipaddr, _addr, TOR_ADDR_BUF_LEN, 0); + tor_addr_to_str(ipaddr, &addr, TOR_ADDR_BUF_LEN, 0); log_warn(LD_BUG, "Cannot use directory server without dirport or " - "begindir! Address: %s, ORPort: %d, DirPort: %d", - escaped_safe_str_client(ipaddr), or_port, dir_port); + "begindir! Address: %s, DirPort: %d, Connection Port: %d", + escaped_safe_str_client(ipaddr), dir_port, port); return; } @@ -963,13 +1091,26 @@ directory_initiate_command_rend(const tor_addr_t *_addr, /* ensure that we don't make direct connections when a SOCKS server is * configured. */ - if (!anonymized_connection && !use_begindir && !options->HTTPProxy && + if (!or_connection && !options->HTTPProxy && (options->Socks4Proxy || options->Socks5Proxy)) { log_warn(LD_DIR, "Cannot connect to a directory server through a " "SOCKS proxy!"); return; } + if (or_connection && (!or_addr_port->port + || tor_addr_is_null(&or_addr_port->addr))) { + log_warn(LD_DIR, "Cannot make an OR connection without an OR port."); + log_backtrace(LOG_WARN, LD_BUG, "Address came from"); + return; + } else if (!or_connection && (!dir_addr_port->port + || tor_addr_is_null(&dir_addr_port->addr))) { + log_warn(LD_DIR, "Cannot make a Dir connection without a Dir port."); + log_backtrace(LOG_WARN, LD_BUG, "Address came from"); + + return; + } + /* ensure we don't make excess connections when we're already downloading * a consensus during bootstrap */ if (connection_dir_avoid_extra_connection_for_purpose(dir_purpose)) { @@ -980,7 +1121,7 @@ directory_initiate_command_rend(const tor_addr_t *_addr, /* set up conn so it's got all the data we need to remember */ tor_addr_copy(&conn->base_.addr, &addr); - conn->base_.port = use_begindir ? or_port : dir_port; + conn->base_.port = port; conn->base_.address = tor_dup_addr(&addr); memcpy(conn->identity_digest, digest, DIGEST_LEN); @@ -998,7 +1139,7 @@ directory_initiate_command_rend(const tor_addr_t *_addr, if (rend_query) conn->rend_data = rend_data_dup(rend_query); - if (!anonymized_connection && !use_begindir) { + if (!or_connection) { /* then we want to connect to dirport directly */ if (options->HTTPProxy) { @@ -1159,6 +1300,23 @@ directory_get_consensus_url(const char *resource) return url; } +/** + * Copies the ipv6 from source to destination, subject to buffer size limit + * size. If decorate is true, makes sure the copied address is decorated. + */ +static void +copy_ipv6_address(char* destination, const char* source, size_t len, + int decorate) { + tor_assert(destination); + tor_assert(source); + + if (decorate && source[0] != '[') { + tor_snprintf(destination, len, "[%s]", source); + } else { + strlcpy(destination, source, len); + } +} + /** Queue an appropriate HTTP command on conn-\>outbuf. The other args * are as in directory_initiate_command(). */ @@ -1170,6 +1328,9 @@ directory_send_command(dir_connection_t *conn, { char proxystring[256]; char hoststring[128]; + /* NEEDS to be the same size hoststring. + Will be decorated with brackets around it if it is ipv6. */ + char decorated_address[128]; smartlist_t *headers = smartlist_new(); char *url; char request[8192]; @@ -1182,12 +1343,20 @@ directory_send_command(dir_connection_t *conn, if (resource) conn->requested_resource = tor_strdup(resource); + /* decorate the ip address if it is ipv6 */ + if (strchr(conn->base_.address, ':')) { + copy_ipv6_address(decorated_address, conn->base_.address, + sizeof(decorated_address), 1); + } else { + strlcpy(decorated_address, conn->base_.address, sizeof(decorated_address)); + } + /* come up with a string for which Host: we want */ if (conn->base_.port == 80) { - strlcpy(hoststring, conn->base_.address, sizeof(hoststring)); + strlcpy(hoststring, decorated_address, sizeof(hoststring)); } else { - tor_snprintf(hoststring, sizeof(hoststring),"%s:%d", - conn->base_.address, conn->base_.port); + tor_snprintf(hoststring, sizeof(hoststring), "%s:%d", + decorated_address, conn->base_.port); } /* Format if-modified-since */ @@ -1595,7 +1764,7 @@ load_downloaded_routers(const char *body, smartlist_t *which, added = router_load_routers_from_string(body, NULL, SAVED_NOWHERE, which, descriptor_digests, buf); - if (general) + if (added && general) control_event_bootstrap(BOOTSTRAP_STATUS_LOADING_DESCRIPTORS, count_loading_descriptors_progress()); return added; @@ -1796,7 +1965,7 @@ connection_dir_client_reached_eof(dir_connection_t *conn) routers_update_all_from_networkstatus(now, 3); update_microdescs_from_networkstatus(now); update_microdesc_downloads(now); - directory_info_has_arrived(now, 0); + directory_info_has_arrived(now, 0, 0); log_info(LD_DIR, "Successfully loaded consensus."); } @@ -1832,7 +2001,7 @@ connection_dir_client_reached_eof(dir_connection_t *conn) * ones got flushed to disk so it's safe to call this on them */ connection_dir_download_cert_failed(conn, status_code); } else { - directory_info_has_arrived(now, 0); + directory_info_has_arrived(now, 0, 0); log_info(LD_DIR, "Successfully loaded certificates from fetch."); } } else { @@ -1946,7 +2115,7 @@ connection_dir_client_reached_eof(dir_connection_t *conn) if (load_downloaded_routers(body, which, descriptor_digests, conn->router_purpose, conn->base_.address)) - directory_info_has_arrived(now, 0); + directory_info_has_arrived(now, 0, 0); } } if (which) { /* mark remaining ones as failed */ @@ -1997,8 +2166,11 @@ connection_dir_client_reached_eof(dir_connection_t *conn) /* Mark remaining ones as failed. */ dir_microdesc_download_failed(which, status_code); } - control_event_bootstrap(BOOTSTRAP_STATUS_LOADING_DESCRIPTORS, - count_loading_descriptors_progress()); + if (mds && smartlist_len(mds)) { + control_event_bootstrap(BOOTSTRAP_STATUS_LOADING_DESCRIPTORS, + count_loading_descriptors_progress()); + directory_info_has_arrived(now, 0, 1); + } SMARTLIST_FOREACH(which, char *, cp, tor_free(cp)); smartlist_free(which); smartlist_free(mds); @@ -2194,17 +2366,23 @@ connection_dir_client_reached_eof(dir_connection_t *conn) if (conn->base_.purpose == DIR_PURPOSE_UPLOAD_RENDDESC_V2) { #define SEND_HS_DESC_UPLOAD_FAILED_EVENT(reason) ( \ - control_event_hs_descriptor_upload_failed(conn->identity_digest, \ - reason) ) + control_event_hs_descriptor_upload_failed( \ + conn->identity_digest, \ + conn->rend_data->onion_address, \ + reason) ) log_info(LD_REND,"Uploaded rendezvous descriptor (status %d " "(%s))", status_code, escaped(reason)); + /* Without the rend data, we'll have a problem identifying what has been + * uploaded for which service. */ + tor_assert(conn->rend_data); switch (status_code) { case 200: log_info(LD_REND, "Uploading rendezvous descriptor: finished with status " "200 (%s)", escaped(reason)); - control_event_hs_descriptor_uploaded(conn->identity_digest); + control_event_hs_descriptor_uploaded(conn->identity_digest, + conn->rend_data->onion_address); rend_service_desc_has_uploaded(conn->rend_data); break; case 400: diff --git a/src/or/directory.h b/src/or/directory.h index c5b5a5afe1..03c04c10c9 100644 --- a/src/or/directory.h +++ b/src/or/directory.h @@ -1,7 +1,7 @@ /* Copyright (c) 2001 Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** @@ -68,8 +68,8 @@ int connection_dir_process_inbuf(dir_connection_t *conn); int connection_dir_finished_flushing(dir_connection_t *conn); int connection_dir_finished_connecting(dir_connection_t *conn); void connection_dir_about_to_close(dir_connection_t *dir_conn); -void directory_initiate_command(const tor_addr_t *addr, - uint16_t or_port, uint16_t dir_port, +void directory_initiate_command(const tor_addr_t *or_addr, uint16_t or_port, + const tor_addr_t *dir_addr, uint16_t dir_port, const char *digest, uint8_t dir_purpose, uint8_t router_purpose, dir_indirection_t indirection, diff --git a/src/or/dirserv.c b/src/or/dirserv.c index 491557e9cd..2bbaba1877 100644 --- a/src/or/dirserv.c +++ b/src/or/dirserv.c @@ -1,6 +1,6 @@ /* Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #define DIRSERV_PRIVATE @@ -1230,7 +1230,7 @@ free_cached_dir_(void *_d) void dirserv_set_cached_consensus_networkstatus(const char *networkstatus, const char *flavor_name, - const digests_t *digests, + const common_digests_t *digests, time_t published) { cached_dir_t *new_networkstatus; @@ -1239,7 +1239,7 @@ dirserv_set_cached_consensus_networkstatus(const char *networkstatus, cached_consensuses = strmap_new(); new_networkstatus = new_cached_dir(tor_strdup(networkstatus), published); - memcpy(&new_networkstatus->digests, digests, sizeof(digests_t)); + memcpy(&new_networkstatus->digests, digests, sizeof(common_digests_t)); old_networkstatus = strmap_set(cached_consensuses, flavor_name, new_networkstatus); if (old_networkstatus) @@ -3103,7 +3103,7 @@ dirserv_get_routerdescs(smartlist_t *descs_out, const char *key, DSR_HEX|DSR_SORT_UNIQ); SMARTLIST_FOREACH_BEGIN(digests, const char *, d) { if (router_digest_is_me(d)) { - /* make sure desc_routerinfo exists */ + /* calling router_get_my_routerinfo() to make sure it exists */ const routerinfo_t *ri = router_get_my_routerinfo(); if (ri) smartlist_add(descs_out, (void*) &(ri->cache_info)); diff --git a/src/or/dirserv.h b/src/or/dirserv.h index d07339bc12..8fcb3b4b77 100644 --- a/src/or/dirserv.h +++ b/src/or/dirserv.h @@ -1,7 +1,7 @@ /* Copyright (c) 2001 Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** @@ -63,9 +63,9 @@ int directory_too_idle_to_fetch_descriptors(const or_options_t *options, cached_dir_t *dirserv_get_consensus(const char *flavor_name); void dirserv_set_cached_consensus_networkstatus(const char *consensus, - const char *flavor_name, - const digests_t *digests, - time_t published); + const char *flavor_name, + const common_digests_t *digests, + time_t published); void dirserv_clear_old_networkstatuses(time_t cutoff); int dirserv_get_routerdesc_fingerprints(smartlist_t *fps_out, const char *key, const char **msg, diff --git a/src/or/dirvote.c b/src/or/dirvote.c index b61b33af79..6d0c5c14d4 100644 --- a/src/or/dirvote.c +++ b/src/or/dirvote.c @@ -1,6 +1,6 @@ /* Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #define DIRVOTE_PRIVATE @@ -2114,14 +2114,14 @@ networkstatus_add_detached_signatures(networkstatus_t *target, /** Make sure all the digests we know match, and at least one matches. */ { - digests_t *digests = strmap_get(sigs->digests, flavor); + common_digests_t *digests = strmap_get(sigs->digests, flavor); int n_matches = 0; int alg; if (!digests) { *msg_out = "No digests for given consensus flavor"; return -1; } - for (alg = DIGEST_SHA1; alg < N_DIGEST_ALGORITHMS; ++alg) { + for (alg = DIGEST_SHA1; alg < N_COMMON_DIGEST_ALGORITHMS; ++alg) { if (!tor_mem_is_zero(digests->d[alg], DIGEST256_LEN)) { if (fast_memeq(target->digests.d[alg], digests->d[alg], DIGEST256_LEN)) { @@ -2314,7 +2314,7 @@ networkstatus_get_detached_signatures(smartlist_t *consensuses) /* start with SHA256; we don't include SHA1 for anything but the basic * consensus. */ - for (alg = DIGEST_SHA256; alg < N_DIGEST_ALGORITHMS; ++alg) { + for (alg = DIGEST_SHA256; alg < N_COMMON_DIGEST_ALGORITHMS; ++alg) { char d[HEX_DIGEST256_LEN+1]; const char *alg_name = crypto_digest_algorithm_get_name(alg); diff --git a/src/or/dirvote.h b/src/or/dirvote.h index cc526ea34e..5ab4c1cc16 100644 --- a/src/or/dirvote.h +++ b/src/or/dirvote.h @@ -1,7 +1,7 @@ /* Copyright (c) 2001 Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** diff --git a/src/or/dns.c b/src/or/dns.c index 3f5dfd2a8a..c7adfbc971 100644 --- a/src/or/dns.c +++ b/src/or/dns.c @@ -1,6 +1,6 @@ /* Copyright (c) 2003-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** diff --git a/src/or/dns.h b/src/or/dns.h index c2778b216c..b14f7dd29c 100644 --- a/src/or/dns.h +++ b/src/or/dns.h @@ -1,7 +1,7 @@ /* Copyright (c) 2001 Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** diff --git a/src/or/dnsserv.c b/src/or/dnsserv.c index ded0d8431b..8ddb414fe5 100644 --- a/src/or/dnsserv.c +++ b/src/or/dnsserv.c @@ -1,8 +1,9 @@ -/* Copyright (c) 2007-2015, The Tor Project, Inc. */ +/* Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** - * \file dnsserv.c \brief Implements client-side DNS proxy server code. Note: + * \file dnsserv.c + * \brief Implements client-side DNS proxy server code. Note: * this is the DNS Server code, not the Server DNS code. Confused? This code * runs on client-side, and acts as a DNS server. The code in dns.c, on the * other hand, runs on Tor servers, and acts as a DNS client. diff --git a/src/or/dnsserv.h b/src/or/dnsserv.h index 09ad5d7759..ad0e248c83 100644 --- a/src/or/dnsserv.h +++ b/src/or/dnsserv.h @@ -1,7 +1,7 @@ /* Copyright (c) 2001 Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** diff --git a/src/or/entrynodes.c b/src/or/entrynodes.c index 789c53da17..3287fcd584 100644 --- a/src/or/entrynodes.c +++ b/src/or/entrynodes.c @@ -1,7 +1,7 @@ /* Copyright (c) 2001 Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** @@ -87,7 +87,7 @@ get_entry_guards(void) /** Check whether the entry guard <b>e</b> is usable, given the directory * authorities' opinion about the router (stored in <b>ri</b>) and the user's - * configuration (in <b>options</b>). Set <b>e</b>->bad_since + * configuration (in <b>options</b>). Set <b>e</b>->bad_since * accordingly. Return true iff the entry guard's status changes. * * If it's not usable, set *<b>reason</b> to a static string explaining why. @@ -117,6 +117,9 @@ entry_guard_set_status(entry_guard_t *e, const node_t *node, *reason = "not recommended as a guard"; else if (routerset_contains_node(options->ExcludeNodes, node)) *reason = "excluded"; + /* We only care about OR connection connectivity for entry guards. */ + else if (!fascist_firewall_allows_node(node, FIREWALL_OR_CONNECTION, 0)) + *reason = "unreachable by config"; else if (e->path_bias_disabled) *reason = "path-biased"; @@ -268,7 +271,7 @@ entry_is_live(const entry_guard_t *e, entry_is_live_flags_t flags, *msg = "not fast/stable"; return NULL; } - if (!fascist_firewall_allows_node(node)) { + if (!fascist_firewall_allows_node(node, FIREWALL_OR_CONNECTION, 0)) { *msg = "unreachable by config"; return NULL; } @@ -918,7 +921,8 @@ entry_guards_set_from_config(const or_options_t *options) } else if (routerset_contains_node(options->ExcludeNodes, node)) { SMARTLIST_DEL_CURRENT(entry_nodes, node); continue; - } else if (!fascist_firewall_allows_node(node)) { + } else if (!fascist_firewall_allows_node(node, FIREWALL_OR_CONNECTION, + 0)) { SMARTLIST_DEL_CURRENT(entry_nodes, node); continue; } else if (! node->is_possible_guard) { @@ -2116,8 +2120,18 @@ launch_direct_bridge_descriptor_fetch(bridge_info_t *bridge) return; } - directory_initiate_command(&bridge->addr, - bridge->port, 0/*no dirport*/, + /* Until we get a descriptor for the bridge, we only know one address for + * it. */ + if (!fascist_firewall_allows_address_addr(&bridge->addr, bridge->port, + FIREWALL_OR_CONNECTION, 0, 0)) { + log_notice(LD_CONFIG, "Tried to fetch a descriptor directly from a " + "bridge, but that bridge is not reachable through our " + "firewall."); + return; + } + + directory_initiate_command(&bridge->addr, bridge->port, + NULL, 0, /*no dirport*/ bridge->identity, DIR_PURPOSE_FETCH_SERVERDESC, ROUTER_PURPOSE_BRIDGE, @@ -2178,7 +2192,9 @@ fetch_bridge_descriptors(const or_options_t *options, time_t now) !options->UpdateBridgesFromAuthority, !num_bridge_auths); if (ask_bridge_directly && - !fascist_firewall_allows_address_or(&bridge->addr, bridge->port)) { + !fascist_firewall_allows_address_addr(&bridge->addr, bridge->port, + FIREWALL_OR_CONNECTION, 0, + 0)) { log_notice(LD_DIR, "Bridge at '%s' isn't reachable by our " "firewall policy. %s.", fmt_addrport(&bridge->addr, bridge->port), @@ -2226,6 +2242,7 @@ rewrite_node_address_for_bridge(const bridge_info_t *bridge, node_t *node) * does so through an address from any source other than node_get_addr(). */ tor_addr_t addr; + const or_options_t *options = get_options(); if (node->ri) { routerinfo_t *ri = node->ri; @@ -2258,9 +2275,15 @@ rewrite_node_address_for_bridge(const bridge_info_t *bridge, node_t *node) } } - /* Mark which address to use based on which bridge_t we got. */ - node->ipv6_preferred = (tor_addr_family(&bridge->addr) == AF_INET6 && - !tor_addr_is_null(&node->ri->ipv6_addr)); + if (options->ClientPreferIPv6ORPort == -1) { + /* Mark which address to use based on which bridge_t we got. */ + node->ipv6_preferred = (tor_addr_family(&bridge->addr) == AF_INET6 && + !tor_addr_is_null(&node->ri->ipv6_addr)); + } else { + /* Mark which address to use based on user preference */ + node->ipv6_preferred = (fascist_firewall_prefer_ipv6_orport(options) && + !tor_addr_is_null(&node->ri->ipv6_addr)); + } /* XXXipv6 we lack support for falling back to another address for the same relay, warn the user */ @@ -2269,10 +2292,13 @@ rewrite_node_address_for_bridge(const bridge_info_t *bridge, node_t *node) node_get_pref_orport(node, &ap); log_notice(LD_CONFIG, "Bridge '%s' has both an IPv4 and an IPv6 address. " - "Will prefer using its %s address (%s).", + "Will prefer using its %s address (%s) based on %s.", ri->nickname, - tor_addr_family(&ap.addr) == AF_INET6 ? "IPv6" : "IPv4", - fmt_addrport(&ap.addr, ap.port)); + node->ipv6_preferred ? "IPv6" : "IPv4", + fmt_addrport(&ap.addr, ap.port), + options->ClientPreferIPv6ORPort == -1 ? + "the configured Bridge address" : + "ClientPreferIPv6ORPort"); } } if (node->rs) { diff --git a/src/or/entrynodes.h b/src/or/entrynodes.h index 107a562506..59147d19b5 100644 --- a/src/or/entrynodes.h +++ b/src/or/entrynodes.h @@ -1,7 +1,7 @@ /* Copyright (c) 2001 Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** diff --git a/src/or/eventdns_tor.h b/src/or/eventdns_tor.h index f41c5c0099..5db09ae043 100644 --- a/src/or/eventdns_tor.h +++ b/src/or/eventdns_tor.h @@ -1,4 +1,4 @@ -/* Copyright (c) 2007-2015, The Tor Project, Inc. */ +/* Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #ifndef TOR_EVENTDNS_TOR_H diff --git a/src/or/ext_orport.c b/src/or/ext_orport.c index 810fa0d9aa..584abf61fd 100644 --- a/src/or/ext_orport.c +++ b/src/or/ext_orport.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2012-2015, The Tor Project, Inc. */ +/* Copyright (c) 2012-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** diff --git a/src/or/ext_orport.h b/src/or/ext_orport.h index 8b2542f937..33d954e8d0 100644 --- a/src/or/ext_orport.h +++ b/src/or/ext_orport.h @@ -1,7 +1,7 @@ /* Copyright (c) 2001 Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #ifndef EXT_ORPORT_H diff --git a/src/or/fallback_dirs.inc b/src/or/fallback_dirs.inc index d05f16f4ea..45610fa605 100644 --- a/src/or/fallback_dirs.inc +++ b/src/or/fallback_dirs.inc @@ -1,206 +1,298 @@ -/* Trial fallbacks for 0.2.8.1-alpha with ADDRESS_AND_PORT_STABLE_DAYS = 30 +/* Trial fallbacks for 0.2.8.2-alpha with ADDRESS_AND_PORT_STABLE_DAYS = 7 * This works around an issue where relays post a descriptor without a DirPort - * when restarted. If these relays stay up, they will have been up for 120 days - * by the 0.2.8 stable release -- teor */ -/* Whitelist & blacklist excluded 1070 of 1091 candidates. */ + * when restarted. The flag CUTOFFs ensure sufficient relay stability. -- teor + */ +/* Whitelist & blacklist excluded 1380 of 1412 candidates. */ /* Fallback Directory Summary -Final Count: 21 (Eligible 21, Usable 21, Target 290 (1454 * 0.200000), Clamped to 500) +Final Count: 32 (Eligible 32, Usable 32, Target 335 (1679 * 0.200000), Clamped to 500) */ /* Ignore low fallback numbers in alpha builds -- teor -#error Fallback Count 21 is too low. Must be at least 100 for diversity. Try adding entries to the whitelist, or setting INCLUDE_UNLISTED_ENTRIES = True. +#error Fallback Count 32 is too low. Must be at least 50 for diversity. Try adding entries to the whitelist, or setting INCLUDE_UNLISTED_ENTRIES = True. */ /* -Final Weight: 491920 (Eligible 546000) -Max Weight: 43680 (8.879%) (Clamped to 10.000%) -Min Weight: 8080 (1.643%) (Clamped to 0.100%) -Clamped: 54080 (10.994%) Excess Weight, 4 High Weight Fallbacks (19.0%) +Final Weight: 704514 (Eligible 712270) +Max Weight: 56981 (8.088%) (Clamped to 10.000%) +Min Weight: 4450 (0.632%) (Clamped to 0.100%) +Clamped: 7755 (1.101%) Excess Weight, 3 High Weight Fallbacks (9.4%) */ /* -Onionoo Source: details Date: 2016-01-18 00:00:00 Version: 3.0 -URL: https://onionoo.torproject.org/details?fields=fingerprint%2Cnickname%2Ccontact%2Clast_changed_address_or_port%2Cconsensus_weight%2Cor_addresses%2Cdir_address%2Crecommended_version%2Cflags&flag=V2Dir&type=relay&last_seen_days=-7&first_seen_days=30- +Onionoo Source: details Date: 2016-02-27 07:00:00 Version: 3.1 +URL: https://onionoo.torproject.org/details?fields=fingerprint%2Cnickname%2Ccontact%2Clast_changed_address_or_port%2Cconsensus_weight%2Cor_addresses%2Cdir_address%2Crecommended_version%2Cflags&flag=V2Dir&type=relay&last_seen_days=-7&first_seen_days=7- */ /* -Onionoo Source: uptime Date: 2016-01-18 00:00:00 Version: 3.0 -URL: https://onionoo.torproject.org/uptime?first_seen_days=30-&flag=V2Dir&type=relay&last_seen_days=-7 +Onionoo Source: uptime Date: 2016-02-27 07:00:00 Version: 3.1 +URL: https://onionoo.torproject.org/uptime?first_seen_days=7-&flag=V2Dir&type=relay&last_seen_days=-7 */ /* -wagner -Flags: Fast Guard Running Stable V2Dir Valid -Fallback Weight: 43680 / 491920 (8.879%) -Consensus Weight: 62600 / 546000 (11.465%) -Rarely used email <trff914 AT gmail DOT com> -*/ -"5.175.233.86:80 orport=443 id=5525D0429BFE5DC4F1B0E9DE47A4CFA169661E33" -" weight=43680", -/* -kitten2 -Flags: Fast Guard HSDir Running Stable V2Dir Valid -Fallback Weight: 43680 / 491920 (8.879%) -Consensus Weight: 59100 / 546000 (10.824%) -0xEFB74277ECE4E222 Aeris <aeris+tor AT imirhil DOT fr> - 1aerisnnLWPchhDSXpxWGYWwLiSFUVFnd -*/ -"62.210.124.124:9130 orport=9101 id=2EBD117806EE43C3CC885A8F1E4DC60F207E7D3E" -" ipv6=[2001:bc8:3f23:100::1]:9101" -" weight=43680", -/* kitten1 Flags: Fast Guard HSDir Running Stable V2Dir Valid -Fallback Weight: 43680 / 491920 (8.879%) -Consensus Weight: 57600 / 546000 (10.549%) +Fallback Weight: 56981 / 704514 (8.088%) +Consensus Weight: 61100 / 712270 (8.578%) 0xEFB74277ECE4E222 Aeris <aeris+tor AT imirhil DOT fr> - 1aerisnnLWPchhDSXpxWGYWwLiSFUVFnd */ "62.210.124.124:9030 orport=9001 id=86E78DD3720C78DA8673182EF96C54B162CD660C" " ipv6=[2001:bc8:3f23:100::1]:9001" -" weight=43680", +" weight=56981", /* fluxe4 Flags: Fast Guard HSDir Running Stable V2Dir Valid -Fallback Weight: 43680 / 491920 (8.879%) -Consensus Weight: 49500 / 546000 (9.066%) +Fallback Weight: 56981 / 704514 (8.088%) +Consensus Weight: 59800 / 712270 (8.396%) Sebastian <tor@sebastianhahn.net> - 12NbRAjAG5U3LLWETSF7fSTcdaz32Mu5CN */ "131.188.40.188:443 orport=80 id=EBE718E1A49EE229071702964F8DB1F318075FF8" -" weight=43680", +" weight=56981", /* -BabylonNetwork03 -Flags: Exit Fast Guard HSDir Running Stable V2Dir Valid -Fallback Weight: 38700 / 491920 (7.867%) -Babylon Network | noc <AT> babylon <DOT> network | PGP 0x2A540FA5 | 1HiSG8pia5DdDLUMyYNkF9sicGozojZLnH +kitten2 +Flags: Fast Guard HSDir Running Stable V2Dir Valid +Fallback Weight: 56981 / 704514 (8.088%) +Consensus Weight: 57800 / 712270 (8.115%) +0xEFB74277ECE4E222 Aeris <aeris+tor AT imirhil DOT fr> - 1aerisnnLWPchhDSXpxWGYWwLiSFUVFnd */ -"193.111.136.162:80 orport=443 id=C79552275DFCD486B942510EF663ED36ACA1A84B" -" ipv6=[2001:4ba0:cafe:10d0::1]:443" -" weight=38700", +"62.210.124.124:9130 orport=9101 id=2EBD117806EE43C3CC885A8F1E4DC60F207E7D3E" +" ipv6=[2001:bc8:3f23:100::1]:9101" +" weight=56981", +/* +fluxe3 +Flags: Fast Guard HSDir Running Stable V2Dir Valid +Fallback Weight: 54800 / 704514 (7.778%) +Sebastian <tor@sebastianhahn.net> - 12NbRAjAG5U3LLWETSF7fSTcdaz32Mu5CN +*/ +"78.47.18.110:443 orport=80 id=F8D27B163B9247B232A2EEE68DD8B698695C28DE" +" weight=54800", /* tornoderdednl -Flags: Fast Guard Running Stable V2Dir Valid -Fallback Weight: 33000 / 491920 (6.708%) +Flags: Fast Guard HSDir Running Stable V2Dir Valid +Fallback Weight: 50500 / 704514 (7.168%) 0x4871E82F Thom Wiggers <thom @AT@ RDED POINT NL> BTC 1DLyDFV13zhCWJYHMh5bk5C58yYvpxqxfQ */ "178.62.199.226:80 orport=443 id=CBEFF7BA4A4062045133C053F2D70524D8BBE5BE" " ipv6=[2a03:b0c0:2:d0::b7:5001]:443" -" weight=33000", +" weight=50500", /* -fluxe3 +pixelminer Flags: Fast Guard HSDir Running Stable V2Dir Valid -Fallback Weight: 31500 / 491920 (6.403%) -Sebastian <tor@sebastianhahn.net> - 12NbRAjAG5U3LLWETSF7fSTcdaz32Mu5CN +Fallback Weight: 44800 / 704514 (6.359%) +Christian Sturm <reezer AT pixelminers dot net> - 1Q3PQJTELv33S1nruGcTUMQ7CuWxXmnjkZ */ -"78.47.18.110:443 orport=80 id=F8D27B163B9247B232A2EEE68DD8B698695C28DE" -" weight=31500", +"81.7.14.246:80 orport=443 id=CE75BF0972ADD52AF8807602374E495C815DB304" +" ipv6=[2a02:180:a:51::dead]:443" +" weight=44800", /* -BabylonNetwork02 -Flags: Exit Fast Guard HSDir Running Stable V2Dir Valid -Fallback Weight: 27300 / 491920 (5.550%) -Babylon Network | noc <AT> babylon <DOT> network | PGP 0x2A540FA5 | 1HiSG8pia5DdDLUMyYNkF9sicGozojZLnH -*/ -"149.202.98.161:80 orport=443 id=54660C671B47E6986B465B80444414BD19E5A34B" -" ipv6=[2001:41d0:8:4528::161]:443" -" weight=27300", -/* -coby +bakunin Flags: Fast Guard HSDir Running Stable V2Dir Valid -Fallback Weight: 20400 / 491920 (4.147%) -c0by <coby AT 127001 dot ovh> +Fallback Weight: 41800 / 704514 (5.933%) +GTor <contact _AT_ gtor _DOT_ org> */ -"51.255.33.237:9091 orport=9001 id=A360C21FA87FFA2046D92C17086A6B47E5C68109" -" weight=20400", +"178.16.208.57:80 orport=443 id=92CFD9565B24646CAC2D172D3DB503D69E777B8A" +" ipv6=[2a00:1c20:4089:1234:7825:2c5d:1ecd:c66f]:443" +" weight=41800", /* kili Flags: Fast Guard HSDir Running Stable V2Dir Valid -Fallback Weight: 19300 / 491920 (3.923%) +Fallback Weight: 23800 / 704514 (3.378%) 0x49CBC553 Joost Rijneveld <joost AT joostrijneveld dot nl> */ "178.62.173.203:9030 orport=9001 id=DD85503F2D1F52EF9EAD621E942298F46CD2FC10" " ipv6=[2a03:b0c0:0:1010::a4:b001]:9001" -" weight=19300", +" weight=23800", /* -Logforme +PedicaboMundi Flags: Fast Guard HSDir Running Stable V2Dir Valid -Fallback Weight: 18600 / 491920 (3.781%) -Logforme <m7527 AT abc dot se> +Fallback Weight: 23000 / 704514 (3.265%) +0x43DE8191 - 12LiRiasTEL346ZFjgCh5e3nBexQuvDBTg */ -"84.219.173.60:9030 orport=443 id=855BC2DABE24C861CD887DB9B2E950424B49FC34" -" weight=18600", +"144.76.14.145:110 orport=143 id=14419131033443AE6E21DA82B0D307F7CAE42BDB" +" ipv6=[2a01:4f8:190:9490::dead]:443" +" weight=23000", /* -eriador +Doedel26 Flags: Fast Guard HSDir Running Stable V2Dir Valid -Fallback Weight: 17400 / 491920 (3.537%) -hwertiout695@safe-mail.net +Fallback Weight: 22600 / 704514 (3.208%) +Felix <zwiebel ta quantentunnel tod de> */ -"85.25.138.93:9030 orport=4029 id=6DE61A6F72C1E5418A66BFED80DFB63E4C77668F" -" weight=17400", +"178.254.20.134:80 orport=443 id=9F5068310818ED7C70B0BC4087AB55CB12CB4377" +" weight=22600", /* Doedel24 Flags: Fast Guard HSDir Running Stable V2Dir Valid -Fallback Weight: 17000 / 491920 (3.456%) +Fallback Weight: 20800 / 704514 (2.952%) Felix <zwiebel ta quantentunnel tod de> */ "178.254.20.134:9030 orport=9001 id=2CE96A8A1DA032664C90F574AFFBECE18A6E8DFC" -" weight=17000", +" weight=20800", +/* +Freebird31 +Flags: Fast Guard HSDir Running Stable V2Dir Valid +Fallback Weight: 20500 / 704514 (2.910%) +Felix <zwiebel ta quantentunnel tod de> +*/ +"178.254.13.126:80 orport=443 id=F9246DEF2B653807236DA134F2AEAB103D58ABFE" +" weight=20500", +/* +rueckgrat +Flags: Fast Guard HSDir Running Stable V2Dir Valid +Fallback Weight: 19200 / 704514 (2.725%) +Paul Staroch <paulchen AT rueckgr DOT at> - BTC 1G8pF66fnHc4n4oksY87pCN4TRXAV2Nqhh +*/ +"5.9.110.236:9030 orport=9001 id=0756B7CD4DFC8182BE23143FAC0642F515182CEB" +" ipv6=[2a01:4f8:162:51e2::2]:9001" +" weight=19200", +/* +coby +Flags: Fast Guard Running Stable V2Dir Valid +Fallback Weight: 16700 / 704514 (2.370%) +c0by <coby AT 127001 dot ovh> +*/ +"51.255.33.237:9091 orport=9001 id=A360C21FA87FFA2046D92C17086A6B47E5C68109" +" weight=16700", /* -GrmmlLitavis +Logforme Flags: Fast Guard HSDir Running Stable V2Dir Valid -Fallback Weight: 15500 / 491920 (3.151%) -<tor AT grmml DOT eu> +Fallback Weight: 16000 / 704514 (2.271%) +Logforme <m7527 AT abc dot se> +*/ +"84.219.173.60:9030 orport=443 id=855BC2DABE24C861CD887DB9B2E950424B49FC34" +" weight=16000", +/* +12xBTME1 +Flags: Exit Fast Guard HSDir Running Stable V2Dir Valid +Fallback Weight: 15300 / 704514 (2.172%) +12xBTM@gmail.com - 12xBTMNArLvKXqvbsbyVhpPQfzUDuUaPGP */ -"5.39.88.19:9030 orport=9001 id=7CB8C31432A796731EA7B6BF4025548DFEB25E0C" -" ipv6=[2001:41d0:8:9a13::1]:9050" -" weight=15500", +"81.7.17.171:80 orport=443 id=00C4B4731658D3B4987132A3F77100CFCB190D97" +" ipv6=[2a02:180:1:1::517:11ab]:443" +" weight=15300", /* Doedel21 Flags: Fast Guard HSDir Running Stable V2Dir Valid -Fallback Weight: 13800 / 491920 (2.805%) +Fallback Weight: 14800 / 704514 (2.101%) Felix <zwiebel ta quantentunnel tod de> */ "178.254.44.135:80 orport=443 id=AE6A8C18E7499B586CD36246AC4BCAFFBBF93AB2" -" weight=13800", +" weight=14800", /* -Unnamed +Binnacle Flags: Fast Guard HSDir Running Stable V2Dir Valid -Fallback Weight: 13400 / 491920 (2.724%) -monitor0penmailbox0rg +Fallback Weight: 13700 / 704514 (1.945%) +starlight dot YYYYqQ at binnacle dot cx */ -"217.12.199.208:80 orport=443 id=DF3AED4322B1824BF5539AE54B2D1B38E080FF05" -" weight=13400", +"108.53.208.157:80 orport=443 id=4F0DB7E687FC7C0AE55C8F243DA8B0EB27FBF1F2" +" weight=13700", /* -Doedel26 +Freebird32 Flags: Fast Guard HSDir Running Stable V2Dir Valid -Fallback Weight: 12800 / 491920 (2.602%) +Fallback Weight: 13200 / 704514 (1.874%) Felix <zwiebel ta quantentunnel tod de> */ -"178.254.20.134:80 orport=443 id=9F5068310818ED7C70B0BC4087AB55CB12CB4377" -" weight=12800", +"178.254.13.126:9030 orport=9001 id=0C475BA4D3AA3C289B716F95954CAD616E50C4E5" +" weight=13200", +/* +eriador +Flags: Fast Guard Running Stable V2Dir Valid +Fallback Weight: 12400 / 704514 (1.760%) +hwertiout695@safe-mail.net +*/ +"85.25.138.93:9030 orport=4029 id=6DE61A6F72C1E5418A66BFED80DFB63E4C77668F" +" weight=12400", +/* +Nurnberg04 +Flags: Fast Guard HSDir Running Stable V2Dir Valid +Fallback Weight: 11600 / 704514 (1.647%) +Please Donate <tor AT use.startmail dot com> - 1GuD8FxCnTqYGeRbx4MceYPhMLNTKDTsTT +*/ +"88.198.38.226:22 orport=443 id=4B9E2C56FB42B891794FE2CD2FCAD08A320CC3BB" +" ipv6=[2a01:4f8:a0:1351::2]:80" +" weight=11600", +/* +Nurnberg03 +Flags: Fast Guard HSDir Running Stable V2Dir Valid +Fallback Weight: 11000 / 704514 (1.561%) +Please Donate <tor AT use.startmail dot com> - 1GuD8FxCnTqYGeRbx4MceYPhMLNTKDTsTT +*/ +"85.10.201.38:22 orport=443 id=F6279A203C1950ACF592322A235647A05BFBCF91" +" ipv6=[2a01:4f8:a0:43cc::2]:80" +" weight=11000", /* Doedel22 Flags: Fast Guard HSDir Running Stable V2Dir Valid -Fallback Weight: 12000 / 491920 (2.439%) +Fallback Weight: 10600 / 704514 (1.505%) Felix <zwiebel ta quantentunnel tod de> */ "178.254.44.135:9030 orport=9001 id=8FA37B93397015B2BC5A525C908485260BE9F422" -" weight=12000", +" weight=10600", +/* +Nurnberg01 +Flags: Fast Guard HSDir Running Stable V2Dir Valid +Fallback Weight: 10500 / 704514 (1.490%) +Please Donate <tor AT use.startmail dot com> - 1GuD8FxCnTqYGeRbx4MceYPhMLNTKDTsTT +*/ +"213.239.210.204:22 orport=443 id=5BFDECCE9B4A23AE14EC767C5A2C1E10558B00B9" +" ipv6=[2a01:4f8:a0:9474::2]:80" +" weight=10500", /* kitten4 Flags: Fast Guard HSDir Running Stable V2Dir Valid -Fallback Weight: 10100 / 491920 (2.053%) +Fallback Weight: 10400 / 704514 (1.476%) 0xEFB74277ECE4E222 Aeris <aeris+tor AT imirhil DOT fr> - 1aerisnnLWPchhDSXpxWGYWwLiSFUVFnd */ "212.47.237.95:9130 orport=9101 id=6FB38EB22E57EF7ED5EF00238F6A48E553735D88" -" weight=10100", +" weight=10400", /* -Binnacle +Unnamed Flags: Fast Guard HSDir Running Stable V2Dir Valid -Fallback Weight: 8320 / 491920 (1.691%) -starlight dot YYYYqQ at binnacle dot cx +Fallback Weight: 9780 / 704514 (1.388%) +monitor0penmailbox0rg */ -"108.53.208.157:80 orport=443 id=4F0DB7E687FC7C0AE55C8F243DA8B0EB27FBF1F2" -" weight=8320", +"217.12.210.214:80 orport=443 id=943C0C6841C1E914B9FCA796C6846620A5AF9BC7" +" weight=9780", /* -PedicaboMundi +Nurnberg02 Flags: Fast Guard HSDir Running Stable V2Dir Valid -Fallback Weight: 8080 / 491920 (1.643%) -0x43DE8191 - 12LiRiasTEL346ZFjgCh5e3nBexQuvDBTg +Fallback Weight: 9490 / 704514 (1.347%) +Please Donate <tor AT use.startmail dot com> - 1GuD8FxCnTqYGeRbx4MceYPhMLNTKDTsTT */ -"144.76.14.145:110 orport=143 id=14419131033443AE6E21DA82B0D307F7CAE42BDB" -" ipv6=[2a01:4f8:190:9490::dead]:443" -" weight=8080", +"213.239.220.25:22 orport=443 id=BEE2317AE127EB681C5AE1551C1EA0630580638A" +" ipv6=[2a01:4f8:a0:710c::2]:80" +" weight=9490", +/* +kitten3 +Flags: Fast Guard HSDir Running Stable V2Dir Valid +Fallback Weight: 8640 / 704514 (1.226%) +0xEFB74277ECE4E222 Aeris <aeris+tor AT imirhil DOT fr> - 1aerisnnLWPchhDSXpxWGYWwLiSFUVFnd +*/ +"212.47.237.95:9030 orport=9001 id=3F5D8A879C58961BB45A3D26AC41B543B40236D6" +" weight=8640", +/* +horizons +Flags: Fast Guard Running Stable V2Dir Valid +Fallback Weight: 7860 / 704514 (1.116%) +kbesig@socal.rr.com +*/ +"167.114.35.28:9030 orport=9001 id=E65D300F11E1DB12C534B0146BDAB6972F1A8A48" +" weight=7860", +/* +wagner +Flags: Fast Guard Running Stable V2Dir Valid +Fallback Weight: 7700 / 704514 (1.093%) +Rarely used email <trff914 AT gmail DOT com> +*/ +"5.175.233.86:80 orport=443 id=5525D0429BFE5DC4F1B0E9DE47A4CFA169661E33" +" weight=7700", +/* +Unnamed +Flags: Fast Guard HSDir Running Stable V2Dir Valid +Fallback Weight: 7650 / 704514 (1.086%) +monitor0penmailbox0rg +*/ +"217.12.199.208:80 orport=443 id=DF3AED4322B1824BF5539AE54B2D1B38E080FF05" +" weight=7650", +/* +ratchet +Flags: Fast Guard HSDir Running Stable V2Dir Valid +Fallback Weight: 4450 / 704514 (0.632%) +0x1EB4B68F Sam Lanning <sam AT samlanning dot com> +*/ +"170.130.1.7:9030 orport=9001 id=FA3415659444AE006E7E9E5375E82F29700CFDFD" +" weight=4450", diff --git a/src/or/fp_pair.c b/src/or/fp_pair.c index c863d4176c..53b311e580 100644 --- a/src/or/fp_pair.c +++ b/src/or/fp_pair.c @@ -1,6 +1,14 @@ -/* Copyright (c) 2013-2015, The Tor Project, Inc. */ +/* Copyright (c) 2013-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ +/** + * \file fp_pair.c + * + * \brief Manages data structures for associating pairs of fingerprints. Used + * to handle combinations of identity/signing-key fingerprints for + * authorities. + **/ + #include "or.h" #include "fp_pair.h" diff --git a/src/or/fp_pair.h b/src/or/fp_pair.h index 0830ab1f36..b1466581d2 100644 --- a/src/or/fp_pair.h +++ b/src/or/fp_pair.h @@ -1,4 +1,4 @@ -/* Copyright (c) 2013-2015, The Tor Project, Inc. */ +/* Copyright (c) 2013-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** diff --git a/src/or/geoip.c b/src/or/geoip.c index 26030ae52a..b563db0418 100644 --- a/src/or/geoip.c +++ b/src/or/geoip.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2007-2015, The Tor Project, Inc. */ +/* Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** diff --git a/src/or/geoip.h b/src/or/geoip.h index 3f1bba01f8..070296dd07 100644 --- a/src/or/geoip.h +++ b/src/or/geoip.h @@ -1,7 +1,7 @@ /* Copyright (c) 2001 Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** diff --git a/src/or/hibernate.c b/src/or/hibernate.c index 7f8530b221..9408925d96 100644 --- a/src/or/hibernate.c +++ b/src/or/hibernate.c @@ -1,5 +1,5 @@ /* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** diff --git a/src/or/hibernate.h b/src/or/hibernate.h index e0d0c29bdb..fa9da6de39 100644 --- a/src/or/hibernate.h +++ b/src/or/hibernate.h @@ -1,7 +1,7 @@ /* Copyright (c) 2001 Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** diff --git a/src/or/keypin.c b/src/or/keypin.c index 574a76d51e..1f82eccf86 100644 --- a/src/or/keypin.c +++ b/src/or/keypin.c @@ -1,6 +1,13 @@ -/* Copyright (c) 2014, The Tor Project, Inc. */ +/* Copyright (c) 2014-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ +/** + * \file keypin.c + * + * \brief Functions and structures for associating routers' RSA key + * fingerprints with their ED25519 keys. + */ + #define KEYPIN_PRIVATE #include "orconfig.h" diff --git a/src/or/keypin.h b/src/or/keypin.h index 798ac1fedb..673f24d9e3 100644 --- a/src/or/keypin.h +++ b/src/or/keypin.h @@ -1,4 +1,4 @@ -/* Copyright (c) 2014, The Tor Project, Inc. */ +/* Copyright (c) 2014-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #ifndef TOR_KEYPIN_H diff --git a/src/or/main.c b/src/or/main.c index bd4f7eaa71..d84e365122 100644 --- a/src/or/main.c +++ b/src/or/main.c @@ -1,7 +1,7 @@ /* Copyright (c) 2001 Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** @@ -191,32 +191,6 @@ int quiet_level = 0; * ****************************************************************************/ -#if 0 && defined(USE_BUFFEREVENTS) -static void -free_old_inbuf(connection_t *conn) -{ - if (! conn->inbuf) - return; - - tor_assert(conn->outbuf); - tor_assert(buf_datalen(conn->inbuf) == 0); - tor_assert(buf_datalen(conn->outbuf) == 0); - buf_free(conn->inbuf); - buf_free(conn->outbuf); - conn->inbuf = conn->outbuf = NULL; - - if (conn->read_event) { - event_del(conn->read_event); - tor_event_free(conn->read_event); - } - if (conn->write_event) { - event_del(conn->read_event); - tor_event_free(conn->write_event); - } - conn->read_event = conn->write_event = NULL; -} -#endif - #if defined(_WIN32) && defined(USE_BUFFEREVENTS) /** Remove the kernel-space send and receive buffers for <b>s</b>. For use * with IOCP only. */ @@ -946,18 +920,6 @@ conn_close_if_marked(int i) * would make much more sense to react in * connection_handle_read_impl, or to just stop reading in * mark_and_flush */ -#if 0 -#define MARKED_READING_RATE 180 - static ratelim_t marked_read_lim = RATELIM_INIT(MARKED_READING_RATE); - char *m; - if ((m = rate_limit_log(&marked_read_lim, now))) { - log_warn(LD_BUG, "Marked connection (fd %d, type %s, state %s) " - "is still reading; that shouldn't happen.%s", - (int)conn->s, conn_type_to_string(conn->type), - conn_state_to_string(conn->type, conn->state), m); - tor_free(m); - } -#endif conn->read_blocked_on_bw = 1; connection_stop_reading(conn); } @@ -1040,12 +1002,12 @@ directory_all_unreachable(time_t now) /** This function is called whenever we successfully pull down some new * network statuses or server descriptors. */ void -directory_info_has_arrived(time_t now, int from_cache) +directory_info_has_arrived(time_t now, int from_cache, int suppress_logs) { const or_options_t *options = get_options(); if (!router_have_minimum_dir_info()) { - int quiet = from_cache || + int quiet = suppress_logs || from_cache || directory_too_idle_to_fetch_descriptors(options, now); tor_log(quiet ? LOG_INFO : LOG_NOTICE, LD_DIR, "I learned some more directory information, but not enough to " @@ -1414,11 +1376,23 @@ reschedule_directory_downloads(void) periodic_event_reschedule(launch_descriptor_fetches_event); } +#define LONGEST_TIMER_PERIOD (30 * 86400) +/** Helper: Return the number of seconds between <b>now</b> and <b>next</b>, + * clipped to the range [1 second, LONGEST_TIMER_PERIOD]. */ static inline int safe_timer_diff(time_t now, time_t next) { if (next > now) { - tor_assert(next - now <= INT_MAX); + /* There were no computers at signed TIME_MIN (1902 on 32-bit systems), + * and nothing that could run Tor. It's a bug if 'next' is around then. + * On 64-bit systems with signed TIME_MIN, TIME_MIN is before the Big + * Bang. We cannot extrapolate past a singularity, but there was probably + * nothing that could run Tor then, either. + **/ + tor_assert(next > TIME_MIN + LONGEST_TIMER_PERIOD); + + if (next - LONGEST_TIMER_PERIOD > now) + return LONGEST_TIMER_PERIOD; return (int)(next - now); } else { return 1; @@ -2195,7 +2169,10 @@ got_libevent_error(void) void ip_address_changed(int at_interface) { - int server = server_mode(get_options()); + const or_options_t *options = get_options(); + int server = server_mode(options); + int exit_reject_private = (server && options->ExitRelay + && options->ExitPolicyRejectPrivate); if (at_interface) { if (! server) { @@ -2209,10 +2186,15 @@ ip_address_changed(int at_interface) reset_bandwidth_test(); stats_n_seconds_working = 0; router_reset_reachability(); - mark_my_descriptor_dirty("IP address changed"); } } + /* Exit relays incorporate interface addresses in their exit policies when + * ExitPolicyRejectPrivate is set */ + if (exit_reject_private || (server && !at_interface)) { + mark_my_descriptor_dirty("IP address changed"); + } + dns_servers_relaunch_checks(); } @@ -2409,7 +2391,7 @@ do_main_loop(void) * appropriate.) */ now = time(NULL); - directory_info_has_arrived(now, 1); + directory_info_has_arrived(now, 1, 0); if (server_mode(get_options())) { /* launch cpuworkers. Need to do this *after* we've read the onion key. */ @@ -3118,7 +3100,6 @@ tor_free_all(int postfork) connection_free_all(); connection_edge_free_all(); scheduler_free_all(); - memarea_clear_freelist(); nodelist_free_all(); microdesc_free_all(); ext_orport_free_all(); @@ -3319,6 +3300,8 @@ sandbox_init_filter(void) OPEN_DATADIR2(name, name2 suffix); \ } while (0) + OPEN(options->DataDirectory); + OPEN_DATADIR("keys"); OPEN_DATADIR_SUFFIX("cached-certs", ".tmp"); OPEN_DATADIR_SUFFIX("cached-consensus", ".tmp"); OPEN_DATADIR_SUFFIX("unverified-consensus", ".tmp"); diff --git a/src/or/main.h b/src/or/main.h index 37e93d79d3..ad865b8124 100644 --- a/src/or/main.h +++ b/src/or/main.h @@ -1,7 +1,7 @@ /* Copyright (c) 2001 Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** @@ -48,7 +48,7 @@ MOCK_DECL(void,connection_start_writing,(connection_t *conn)); void connection_stop_reading_from_linked_conn(connection_t *conn); void directory_all_unreachable(time_t now); -void directory_info_has_arrived(time_t now, int from_cache); +void directory_info_has_arrived(time_t now, int from_cache, int suppress_logs); void ip_address_changed(int at_interface); void dns_servers_relaunch_checks(void); diff --git a/src/or/microdesc.c b/src/or/microdesc.c index dc23bcb632..9c9e09140c 100644 --- a/src/or/microdesc.c +++ b/src/or/microdesc.c @@ -1,6 +1,13 @@ -/* Copyright (c) 2009-2015, The Tor Project, Inc. */ +/* Copyright (c) 2009-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ +/** + * \file microdesc.c + * + * \brief Implements microdescriptors -- an abbreviated description of + * less-frequently-changing router information. + */ + #include "or.h" #include "circuitbuild.h" #include "config.h" @@ -840,7 +847,7 @@ microdesc_list_missing_digest256(networkstatus_t *ns, microdesc_cache_t *cache, /** Launch download requests for microdescriptors as appropriate. * * Specifically, we should launch download requests if we are configured to - * download mirodescriptors, and there are some microdescriptors listed the + * download mirodescriptors, and there are some microdescriptors listed in the * current microdesc consensus that we don't have, and either we never asked * for them, or we failed to download them but we're willing to retry. */ diff --git a/src/or/microdesc.h b/src/or/microdesc.h index 08571e4bd5..0675e233d6 100644 --- a/src/or/microdesc.h +++ b/src/or/microdesc.h @@ -1,7 +1,7 @@ /* Copyright (c) 2001 Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** diff --git a/src/or/networkstatus.c b/src/or/networkstatus.c index f3a8276689..c5108c2d8a 100644 --- a/src/or/networkstatus.c +++ b/src/or/networkstatus.c @@ -1,7 +1,7 @@ /* Copyright (c) 2001 Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** @@ -1526,7 +1526,7 @@ networkstatus_set_current_consensus(const char *consensus, const unsigned dl_certs = !(flags & NSSET_DONT_DOWNLOAD_CERTS); const unsigned accept_obsolete = flags & NSSET_ACCEPT_OBSOLETE; const unsigned require_flavor = flags & NSSET_REQUIRE_FLAVOR; - const digests_t *current_digests = NULL; + const common_digests_t *current_digests = NULL; consensus_waiting_for_certs_t *waiting = NULL; time_t current_valid_after = 0; int free_consensus = 1; /* Free 'c' at the end of the function */ diff --git a/src/or/networkstatus.h b/src/or/networkstatus.h index 4eab4d83f8..9bbb9a389e 100644 --- a/src/or/networkstatus.h +++ b/src/or/networkstatus.h @@ -1,7 +1,7 @@ /* Copyright (c) 2001 Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** diff --git a/src/or/nodelist.c b/src/or/nodelist.c index 056d5e8cb9..abbb82dfdd 100644 --- a/src/or/nodelist.c +++ b/src/or/nodelist.c @@ -1,9 +1,17 @@ /* Copyright (c) 2001 Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ +/** + * \file nodelist.c + * + * \brief Structures and functions for tracking what we know about the routers + * on the Tor network, and correlating information from networkstatus, + * routerinfo, and microdescs. + */ + #include "or.h" #include "address.h" #include "config.h" @@ -224,7 +232,6 @@ nodelist_set_consensus(networkstatus_t *ns) { const or_options_t *options = get_options(); int authdir = authdir_mode_v3(options); - int client = !server_mode(options); init_nodelist(); if (ns->flavor == FLAV_MICRODESC) @@ -261,7 +268,7 @@ nodelist_set_consensus(networkstatus_t *ns) node->is_bad_exit = rs->is_bad_exit; node->is_hs_dir = rs->is_hs_dir; node->ipv6_preferred = 0; - if (client && options->ClientPreferIPv6ORPort == 1 && + if (fascist_firewall_prefer_ipv6_orport(options) && (tor_addr_is_null(&rs->ipv6_addr) == 0 || (node->md && tor_addr_is_null(&node->md->ipv6_addr) == 0))) node->ipv6_preferred = 1; @@ -761,6 +768,40 @@ node_exit_policy_is_exact(const node_t *node, sa_family_t family) return 1; } +/* Check if the "addr" and port_field fields from r are a valid non-listening + * address/port. If so, set valid to true and add a newly allocated + * tor_addr_port_t containing "addr" and port_field to sl. + * "addr" is an IPv4 host-order address and port_field is a uint16_t. + * r is typically a routerinfo_t or routerstatus_t. + */ +#define SL_ADD_NEW_IPV4_AP(r, port_field, sl, valid) \ + STMT_BEGIN \ + if (tor_addr_port_is_valid_ipv4h((r)->addr, (r)->port_field, 0)) { \ + valid = 1; \ + tor_addr_port_t *ap = tor_malloc(sizeof(tor_addr_port_t)); \ + tor_addr_from_ipv4h(&ap->addr, (r)->addr); \ + ap->port = (r)->port_field; \ + smartlist_add((sl), ap); \ + } \ + STMT_END + +/* Check if the "addr" and port_field fields from r are a valid non-listening + * address/port. If so, set valid to true and add a newly allocated + * tor_addr_port_t containing "addr" and port_field to sl. + * "addr" is a tor_addr_t and port_field is a uint16_t. + * r is typically a routerinfo_t or routerstatus_t. + */ +#define SL_ADD_NEW_IPV6_AP(r, port_field, sl, valid) \ + STMT_BEGIN \ + if (tor_addr_port_is_valid(&(r)->ipv6_addr, (r)->port_field, 0)) { \ + valid = 1; \ + tor_addr_port_t *ap = tor_malloc(sizeof(tor_addr_port_t)); \ + tor_addr_copy(&ap->addr, &(r)->ipv6_addr); \ + ap->port = (r)->port_field; \ + smartlist_add((sl), ap); \ + } \ + STMT_END + /** Return list of tor_addr_port_t with all OR ports (in the sense IP * addr + TCP port) for <b>node</b>. Caller must free all elements * using tor_free() and free the list using smartlist_free(). @@ -773,30 +814,38 @@ smartlist_t * node_get_all_orports(const node_t *node) { smartlist_t *sl = smartlist_new(); + int valid = 0; + /* Find a valid IPv4 address and port */ if (node->ri != NULL) { - if (node->ri->addr != 0) { - tor_addr_port_t *ap = tor_malloc(sizeof(tor_addr_port_t)); - tor_addr_from_ipv4h(&ap->addr, node->ri->addr); - ap->port = node->ri->or_port; - smartlist_add(sl, ap); - } - if (!tor_addr_is_null(&node->ri->ipv6_addr)) { - tor_addr_port_t *ap = tor_malloc(sizeof(tor_addr_port_t)); - tor_addr_copy(&ap->addr, &node->ri->ipv6_addr); - ap->port = node->ri->or_port; - smartlist_add(sl, ap); - } - } else if (node->rs != NULL) { - tor_addr_port_t *ap = tor_malloc(sizeof(tor_addr_port_t)); - tor_addr_from_ipv4h(&ap->addr, node->rs->addr); - ap->port = node->rs->or_port; - smartlist_add(sl, ap); + SL_ADD_NEW_IPV4_AP(node->ri, or_port, sl, valid); + } + + /* If we didn't find a valid address/port in the ri, try the rs */ + if (!valid && node->rs != NULL) { + SL_ADD_NEW_IPV4_AP(node->rs, or_port, sl, valid); + } + + /* Find a valid IPv6 address and port */ + valid = 0; + if (node->ri != NULL) { + SL_ADD_NEW_IPV6_AP(node->ri, ipv6_orport, sl, valid); + } + + if (!valid && node->rs != NULL) { + SL_ADD_NEW_IPV6_AP(node->rs, ipv6_orport, sl, valid); + } + + if (!valid && node->md != NULL) { + SL_ADD_NEW_IPV6_AP(node->md, ipv6_orport, sl, valid); } return sl; } +#undef SL_ADD_NEW_IPV4_AP +#undef SL_ADD_NEW_IPV6_AP + /** Wrapper around node_get_prim_orport for backward compatibility. */ void @@ -812,9 +861,13 @@ node_get_addr(const node_t *node, tor_addr_t *addr_out) uint32_t node_get_prim_addr_ipv4h(const node_t *node) { - if (node->ri) { + /* Don't check the ORPort or DirPort, as this function isn't port-specific, + * and the node might have a valid IPv4 address, yet have a zero + * ORPort or DirPort. + */ + if (node->ri && tor_addr_is_valid_ipv4h(node->ri->addr, 0)) { return node->ri->addr; - } else if (node->rs) { + } else if (node->rs && tor_addr_is_valid_ipv4h(node->rs->addr, 0)) { return node->rs->addr; } return 0; @@ -825,13 +878,13 @@ node_get_prim_addr_ipv4h(const node_t *node) void node_get_address_string(const node_t *node, char *buf, size_t len) { - if (node->ri) { - strlcpy(buf, fmt_addr32(node->ri->addr), len); - } else if (node->rs) { + uint32_t ipv4_addr = node_get_prim_addr_ipv4h(node); + + if (tor_addr_is_valid_ipv4h(ipv4_addr, 0)) { tor_addr_t addr; - tor_addr_from_ipv4h(&addr, node->rs->addr); + tor_addr_from_ipv4h(&addr, ipv4_addr); tor_addr_to_str(buf, &addr, len, 0); - } else { + } else if (len > 0) { buf[0] = '\0'; } } @@ -890,30 +943,83 @@ node_get_declared_family(const node_t *node) return NULL; } +/* Does this node have a valid IPv6 address? + * Prefer node_has_ipv6_orport() or node_has_ipv6_dirport() for + * checking specific ports. */ +int +node_has_ipv6_addr(const node_t *node) +{ + /* Don't check the ORPort or DirPort, as this function isn't port-specific, + * and the node might have a valid IPv6 address, yet have a zero + * ORPort or DirPort. + */ + if (node->ri && tor_addr_is_valid(&node->ri->ipv6_addr, 0)) + return 1; + if (node->rs && tor_addr_is_valid(&node->rs->ipv6_addr, 0)) + return 1; + if (node->md && tor_addr_is_valid(&node->md->ipv6_addr, 0)) + return 1; + + return 0; +} + +/* Does this node have a valid IPv6 ORPort? */ +int +node_has_ipv6_orport(const node_t *node) +{ + tor_addr_port_t ipv6_orport; + node_get_pref_ipv6_orport(node, &ipv6_orport); + return tor_addr_port_is_valid_ap(&ipv6_orport, 0); +} + +/* Does this node have a valid IPv6 DirPort? */ +int +node_has_ipv6_dirport(const node_t *node) +{ + tor_addr_port_t ipv6_dirport; + node_get_pref_ipv6_dirport(node, &ipv6_dirport); + return tor_addr_port_is_valid_ap(&ipv6_dirport, 0); +} + /** Return 1 if we prefer the IPv6 address and OR TCP port of * <b>node</b>, else 0. * - * We prefer the IPv6 address if the router has an IPv6 address and + * We prefer the IPv6 address if the router has an IPv6 address, + * and we can use IPv6 addresses, and: * i) the node_t says that it prefers IPv6 * or - * ii) the router has no IPv4 address. */ + * ii) the router has no IPv4 OR address. + * + * If you don't have a node, consider looking it up. + * If there is no node, use fascist_firewall_prefer_ipv6_orport(). + */ int -node_ipv6_preferred(const node_t *node) +node_ipv6_or_preferred(const node_t *node) { + const or_options_t *options = get_options(); tor_addr_port_t ipv4_addr; node_assert_ok(node); - if (node->ipv6_preferred || node_get_prim_orport(node, &ipv4_addr)) { - if (node->ri) - return !tor_addr_is_null(&node->ri->ipv6_addr); - if (node->md) - return !tor_addr_is_null(&node->md->ipv6_addr); - if (node->rs) - return !tor_addr_is_null(&node->rs->ipv6_addr); + /* XX/teor - node->ipv6_preferred is set from + * fascist_firewall_prefer_ipv6_orport() each time the consensus is loaded. + */ + if (!fascist_firewall_use_ipv6(options)) { + return 0; + } else if (node->ipv6_preferred || node_get_prim_orport(node, &ipv4_addr)) { + return node_has_ipv6_orport(node); } return 0; } +#define RETURN_IPV4_AP(r, port_field, ap_out) \ + STMT_BEGIN \ + if (r && tor_addr_port_is_valid_ipv4h((r)->addr, (r)->port_field, 0)) { \ + tor_addr_from_ipv4h(&(ap_out)->addr, (r)->addr); \ + (ap_out)->port = (r)->port_field; \ + return 0; \ + } \ + STMT_END + /** Copy the primary (IPv4) OR port (IP address and TCP port) for * <b>node</b> into *<b>ap_out</b>. Return 0 if a valid address and * port was copied, else return non-zero.*/ @@ -923,20 +1029,10 @@ node_get_prim_orport(const node_t *node, tor_addr_port_t *ap_out) node_assert_ok(node); tor_assert(ap_out); - if (node->ri) { - if (node->ri->addr == 0 || node->ri->or_port == 0) - return -1; - tor_addr_from_ipv4h(&ap_out->addr, node->ri->addr); - ap_out->port = node->ri->or_port; - return 0; - } - if (node->rs) { - if (node->rs->addr == 0 || node->rs->or_port == 0) - return -1; - tor_addr_from_ipv4h(&ap_out->addr, node->rs->addr); - ap_out->port = node->rs->or_port; - return 0; - } + RETURN_IPV4_AP(node->ri, or_port, ap_out); + RETURN_IPV4_AP(node->rs, or_port, ap_out); + /* Microdescriptors only have an IPv6 address */ + return -1; } @@ -945,21 +1041,12 @@ node_get_prim_orport(const node_t *node, tor_addr_port_t *ap_out) void node_get_pref_orport(const node_t *node, tor_addr_port_t *ap_out) { - const or_options_t *options = get_options(); tor_assert(ap_out); - /* Cheap implementation of config option ClientUseIPv6 -- simply - don't prefer IPv6 when ClientUseIPv6 is not set and we're not a - client running with bridges. See #4455 for more on this subject. - - Note that this filter is too strict since we're hindering not - only clients! Erring on the safe side shouldn't be a problem - though. XXX move this check to where outgoing connections are - made? -LN */ - if ((options->ClientUseIPv6 || options->UseBridges) && - node_ipv6_preferred(node)) { + if (node_ipv6_or_preferred(node)) { node_get_pref_ipv6_orport(node, ap_out); } else { + /* the primary ORPort is always on IPv4 */ node_get_prim_orport(node, ap_out); } } @@ -972,20 +1059,115 @@ node_get_pref_ipv6_orport(const node_t *node, tor_addr_port_t *ap_out) node_assert_ok(node); tor_assert(ap_out); - /* We prefer the microdesc over a potential routerstatus here. They - are not being synchronised atm so there might be a chance that - they differ at some point, f.ex. when flipping - UseMicrodescriptors? -LN */ + /* Prefer routerstatus over microdesc for consistency with the + * fascist_firewall_* functions. Also check if the address or port are valid, + * and try another alternative if they are not. */ - if (node->ri) { + if (node->ri && tor_addr_port_is_valid(&node->ri->ipv6_addr, + node->ri->ipv6_orport, 0)) { tor_addr_copy(&ap_out->addr, &node->ri->ipv6_addr); ap_out->port = node->ri->ipv6_orport; - } else if (node->md) { + } else if (node->rs && tor_addr_port_is_valid(&node->rs->ipv6_addr, + node->rs->ipv6_orport, 0)) { + tor_addr_copy(&ap_out->addr, &node->rs->ipv6_addr); + ap_out->port = node->rs->ipv6_orport; + } else if (node->md && tor_addr_port_is_valid(&node->md->ipv6_addr, + node->md->ipv6_orport, 0)) { tor_addr_copy(&ap_out->addr, &node->md->ipv6_addr); ap_out->port = node->md->ipv6_orport; - } else if (node->rs) { + } else { + tor_addr_make_null(&ap_out->addr, AF_INET6); + ap_out->port = 0; + } +} + +/** Return 1 if we prefer the IPv6 address and Dir TCP port of + * <b>node</b>, else 0. + * + * We prefer the IPv6 address if the router has an IPv6 address, + * and we can use IPv6 addresses, and: + * i) the router has no IPv4 Dir address. + * or + * ii) our preference is for IPv6 Dir addresses. + * + * If there is no node, use fascist_firewall_prefer_ipv6_dirport(). + */ +int +node_ipv6_dir_preferred(const node_t *node) +{ + const or_options_t *options = get_options(); + tor_addr_port_t ipv4_addr; + node_assert_ok(node); + + /* node->ipv6_preferred is set from fascist_firewall_prefer_ipv6_orport(), + * so we can't use it to determine DirPort IPv6 preference. + * This means that bridge clients will use IPv4 DirPorts by default. + */ + if (!fascist_firewall_use_ipv6(options)) { + return 0; + } else if (node_get_prim_dirport(node, &ipv4_addr) + || fascist_firewall_prefer_ipv6_dirport(get_options())) { + return node_has_ipv6_dirport(node); + } + return 0; +} + +/** Copy the primary (IPv4) Dir port (IP address and TCP port) for + * <b>node</b> into *<b>ap_out</b>. Return 0 if a valid address and + * port was copied, else return non-zero.*/ +int +node_get_prim_dirport(const node_t *node, tor_addr_port_t *ap_out) +{ + node_assert_ok(node); + tor_assert(ap_out); + + RETURN_IPV4_AP(node->ri, dir_port, ap_out); + RETURN_IPV4_AP(node->rs, dir_port, ap_out); + /* Microdescriptors only have an IPv6 address */ + + return -1; +} + +#undef RETURN_IPV4_AP + +/** Copy the preferred Dir port (IP address and TCP port) for + * <b>node</b> into *<b>ap_out</b>. */ +void +node_get_pref_dirport(const node_t *node, tor_addr_port_t *ap_out) +{ + tor_assert(ap_out); + + if (node_ipv6_dir_preferred(node)) { + node_get_pref_ipv6_dirport(node, ap_out); + } else { + /* the primary DirPort is always on IPv4 */ + node_get_prim_dirport(node, ap_out); + } +} + +/** Copy the preferred IPv6 Dir port (IP address and TCP port) for + * <b>node</b> into *<b>ap_out</b>. */ +void +node_get_pref_ipv6_dirport(const node_t *node, tor_addr_port_t *ap_out) +{ + node_assert_ok(node); + tor_assert(ap_out); + + /* Check if the address or port are valid, and try another alternative if + * they are not. Note that microdescriptors have no dir_port. */ + + /* Assume IPv4 and IPv6 dirports are the same */ + if (node->ri && tor_addr_port_is_valid(&node->ri->ipv6_addr, + node->ri->dir_port, 0)) { + tor_addr_copy(&ap_out->addr, &node->ri->ipv6_addr); + ap_out->port = node->ri->dir_port; + } else if (node->rs && tor_addr_port_is_valid(&node->rs->ipv6_addr, + node->rs->dir_port, 0)) { tor_addr_copy(&ap_out->addr, &node->rs->ipv6_addr); - ap_out->port = node->rs->ipv6_orport; + ap_out->port = node->rs->dir_port; + } else { + tor_addr_make_null(&ap_out->addr, AF_INET6); + ap_out->port = 0; } } diff --git a/src/or/nodelist.h b/src/or/nodelist.h index a131e0dd4e..71a91e107f 100644 --- a/src/or/nodelist.h +++ b/src/or/nodelist.h @@ -1,7 +1,7 @@ /* Copyright (c) 2001 Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** @@ -55,10 +55,20 @@ void node_get_address_string(const node_t *node, char *cp, size_t len); long node_get_declared_uptime(const node_t *node); time_t node_get_published_on(const node_t *node); const smartlist_t *node_get_declared_family(const node_t *node); -int node_ipv6_preferred(const node_t *node); + +int node_has_ipv6_addr(const node_t *node); +int node_has_ipv6_orport(const node_t *node); +int node_has_ipv6_dirport(const node_t *node); +/* Deprecated - use node_ipv6_or_preferred or node_ipv6_dir_preferred */ +#define node_ipv6_preferred(node) node_ipv6_or_preferred(node) +int node_ipv6_or_preferred(const node_t *node); int node_get_prim_orport(const node_t *node, tor_addr_port_t *ap_out); void node_get_pref_orport(const node_t *node, tor_addr_port_t *ap_out); void node_get_pref_ipv6_orport(const node_t *node, tor_addr_port_t *ap_out); +int node_ipv6_dir_preferred(const node_t *node); +int node_get_prim_dirport(const node_t *node, tor_addr_port_t *ap_out); +void node_get_pref_dirport(const node_t *node, tor_addr_port_t *ap_out); +void node_get_pref_ipv6_dirport(const node_t *node, tor_addr_port_t *ap_out); int node_has_curve25519_onion_key(const node_t *node); MOCK_DECL(smartlist_t *, nodelist_get_list, (void)); diff --git a/src/or/ntmain.c b/src/or/ntmain.c index b31ed869d6..ded0e0d307 100644 --- a/src/or/ntmain.c +++ b/src/or/ntmain.c @@ -1,8 +1,14 @@ /* Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ +/** + * \file ntmain.c + * + * \brief Entry points for running/configuring Tor as Windows Service. + */ + #ifdef _WIN32 #include "or.h" diff --git a/src/or/ntmain.h b/src/or/ntmain.h index eb55a296f6..31bf38c62c 100644 --- a/src/or/ntmain.h +++ b/src/or/ntmain.h @@ -1,7 +1,7 @@ /* Copyright (c) 2001 Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** diff --git a/src/or/onion.c b/src/or/onion.c index 4864792511..d6ef3673dd 100644 --- a/src/or/onion.c +++ b/src/or/onion.c @@ -1,7 +1,7 @@ /* Copyright (c) 2001 Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** diff --git a/src/or/onion.h b/src/or/onion.h index 45454f480d..0275fa00d2 100644 --- a/src/or/onion.h +++ b/src/or/onion.h @@ -1,7 +1,7 @@ /* Copyright (c) 2001 Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** diff --git a/src/or/onion_fast.c b/src/or/onion_fast.c index 22bef4eee0..1f79860596 100644 --- a/src/or/onion_fast.c +++ b/src/or/onion_fast.c @@ -1,7 +1,7 @@ /* Copyright (c) 2001 Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** diff --git a/src/or/onion_fast.h b/src/or/onion_fast.h index d50d503a73..b9626002c3 100644 --- a/src/or/onion_fast.h +++ b/src/or/onion_fast.h @@ -1,7 +1,7 @@ /* Copyright (c) 2001 Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** diff --git a/src/or/onion_ntor.c b/src/or/onion_ntor.c index 539f06f61f..9f97a4cfbe 100644 --- a/src/or/onion_ntor.c +++ b/src/or/onion_ntor.c @@ -1,6 +1,12 @@ -/* Copyright (c) 2012-2015, The Tor Project, Inc. */ +/* Copyright (c) 2012-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ +/** + * \file onion_ntor.c + * + * \brief Implementation for the ntor handshake. + */ + #include "orconfig.h" #define ONION_NTOR_PRIVATE diff --git a/src/or/onion_ntor.h b/src/or/onion_ntor.h index 0a39c1de16..f637b437fd 100644 --- a/src/or/onion_ntor.h +++ b/src/or/onion_ntor.h @@ -1,4 +1,4 @@ -/* Copyright (c) 2012-2015, The Tor Project, Inc. */ +/* Copyright (c) 2012-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #ifndef TOR_ONION_NTOR_H diff --git a/src/or/onion_tap.c b/src/or/onion_tap.c index 487cbeec04..bfd472351f 100644 --- a/src/or/onion_tap.c +++ b/src/or/onion_tap.c @@ -1,7 +1,7 @@ /* Copyright (c) 2001 Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** diff --git a/src/or/onion_tap.h b/src/or/onion_tap.h index c548b3d99f..a2880f6e98 100644 --- a/src/or/onion_tap.h +++ b/src/or/onion_tap.h @@ -1,7 +1,7 @@ /* Copyright (c) 2001 Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** diff --git a/src/or/or.h b/src/or/or.h index 6faeb34d56..4d145e45ff 100644 --- a/src/or/or.h +++ b/src/or/or.h @@ -1,7 +1,7 @@ /* Copyright (c) 2001 Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** @@ -1935,7 +1935,7 @@ typedef struct cached_dir_t { size_t dir_len; /**< Length of <b>dir</b> (not counting its NUL). */ size_t dir_z_len; /**< Length of <b>dir_z</b>. */ time_t published; /**< When was this object published. */ - digests_t digests; /**< Digests of this object (networkstatus only) */ + common_digests_t digests; /**< Digests of this object (networkstatus only) */ int refcnt; /**< Reference count for this cached_dir_t. */ } cached_dir_t; @@ -2414,7 +2414,8 @@ typedef struct node_t { /* Local info: derived. */ - /** True if the IPv6 OR port is preferred over the IPv4 OR port. */ + /** True if the IPv6 OR port is preferred over the IPv4 OR port. + * XX/teor - can this become out of date if the torrc changes? */ unsigned int ipv6_preferred:1; /** According to the geoip db what country is this router in? */ @@ -2572,7 +2573,7 @@ typedef struct networkstatus_t { struct authority_cert_t *cert; /**< Vote only: the voter's certificate. */ /** Digests of this document, as signed. */ - digests_t digests; + common_digests_t digests; /** List of router statuses, sorted by identity digest. For a vote, * the elements are vote_routerstatus_t; for a consensus, the elements @@ -4081,12 +4082,24 @@ typedef struct { * over randomly chosen exits. */ int ClientRejectInternalAddresses; - /** If true, clients may connect over IPv6. XXX we don't really - enforce this -- clients _may_ set up outgoing IPv6 connections - even when this option is not set. */ + /** If true, clients may connect over IPv4. If false, they will avoid + * connecting over IPv4. We enforce this for OR and Dir connections. */ + int ClientUseIPv4; + /** If true, clients may connect over IPv6. If false, they will avoid + * connecting over IPv4. We enforce this for OR and Dir connections. + * Use fascist_firewall_use_ipv6() instead of accessing this value + * directly. */ int ClientUseIPv6; - /** If true, prefer an IPv6 OR port over an IPv4 one. */ + /** If true, prefer an IPv6 OR port over an IPv4 one for entry node + * connections. If auto, bridge clients prefer IPv6, and other clients + * prefer IPv4. Use node_ipv6_or_preferred() instead of accessing this value + * directly. */ int ClientPreferIPv6ORPort; + /** If true, prefer an IPv6 directory port over an IPv4 one for direct + * directory connections. If auto, bridge clients prefer IPv6, and other + * clients prefer IPv4. Use fascist_firewall_prefer_ipv6_dirport() instead of + * accessing this value directly. */ + int ClientPreferIPv6DirPort; /** The length of time that we think a consensus should be fresh. */ int V3AuthVotingInterval; @@ -5145,6 +5158,8 @@ typedef struct dir_server_t { char *description; char *nickname; char *address; /**< Hostname. */ + /* XX/teor - why do we duplicate the address and port fields here and in + * fake_status? Surely we could just use fake_status (#17867). */ tor_addr_t ipv6_addr; /**< IPv6 address if present; AF_UNSPEC if not */ uint32_t addr; /**< IPv4 address. */ uint16_t dir_port; /**< Directory port. */ @@ -5230,7 +5245,9 @@ typedef enum { CRN_ALLOW_INVALID = 1<<3, /* XXXX not used, apparently. */ CRN_WEIGHT_AS_EXIT = 1<<5, - CRN_NEED_DESC = 1<<6 + CRN_NEED_DESC = 1<<6, + /* On clients, only provide nodes that satisfy ClientPreferIPv6OR */ + CRN_PREF_ADDR = 1<<7 } router_crn_flags_t; /** Return value for router_add_to_routerlist() and dirserv_add_descriptor() */ diff --git a/src/or/periodic.c b/src/or/periodic.c index 109717f738..3fe500ca17 100644 --- a/src/or/periodic.c +++ b/src/or/periodic.c @@ -1,6 +1,12 @@ -/* Copyright (c) 2015, The Tor Project, Inc. */ +/* Copyright (c) 2015-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ +/** + * \file periodic.c + * + * \brief Generic backend for handling periodic events. + */ + #include "or.h" #include "compat_libevent.h" #include "config.h" diff --git a/src/or/periodic.h b/src/or/periodic.h index bab0c91916..021bb4ef5c 100644 --- a/src/or/periodic.h +++ b/src/or/periodic.h @@ -1,4 +1,4 @@ -/* Copyright (c) 2015, The Tor Project, Inc. */ +/* Copyright (c) 2015-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #ifndef TOR_PERIODIC_H diff --git a/src/or/policies.c b/src/or/policies.c index 4706a9da72..f9718b6a95 100644 --- a/src/or/policies.c +++ b/src/or/policies.c @@ -1,6 +1,6 @@ /* Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** @@ -13,6 +13,7 @@ #include "or.h" #include "config.h" #include "dirserv.h" +#include "networkstatus.h" #include "nodelist.h" #include "policies.h" #include "router.h" @@ -270,16 +271,76 @@ parse_reachable_addresses(void) "Error parsing ReachableDirAddresses entry; ignoring."); ret = -1; } + + /* We ignore ReachableAddresses for relays */ + if (!server_mode(options)) { + if ((reachable_or_addr_policy + && policy_is_reject_star(reachable_or_addr_policy, AF_UNSPEC)) + || (reachable_dir_addr_policy + && policy_is_reject_star(reachable_dir_addr_policy, AF_UNSPEC))) { + log_warn(LD_CONFIG, "Tor cannot connect to the Internet if " + "ReachableAddresses, ReachableORAddresses, or " + "ReachableDirAddresses reject all addresses. Please accept " + "some addresses in these options."); + } else if (options->ClientUseIPv4 == 1 + && ((reachable_or_addr_policy + && policy_is_reject_star(reachable_or_addr_policy, AF_INET)) + || (reachable_dir_addr_policy + && policy_is_reject_star(reachable_dir_addr_policy, AF_INET)))) { + log_warn(LD_CONFIG, "You have set ClientUseIPv4 1, but " + "ReachableAddresses, ReachableORAddresses, or " + "ReachableDirAddresses reject all IPv4 addresses. " + "Tor will not connect using IPv4."); + } else if (fascist_firewall_use_ipv6(options) + && ((reachable_or_addr_policy + && policy_is_reject_star(reachable_or_addr_policy, AF_INET6)) + || (reachable_dir_addr_policy + && policy_is_reject_star(reachable_dir_addr_policy, AF_INET6)))) { + log_warn(LD_CONFIG, "You have configured tor to use IPv6 " + "(ClientUseIPv6 1 or UseBridges 1), but " + "ReachableAddresses, ReachableORAddresses, or " + "ReachableDirAddresses reject all IPv6 addresses. " + "Tor will not connect using IPv6."); + } + } + return ret; } -/** Return true iff the firewall options might block any address:port - * combination. +/* Return true iff ClientUseIPv4 0 or ClientUseIPv6 0 might block any OR or Dir + * address:port combination. */ +static int +firewall_is_fascist_impl(void) +{ + const or_options_t *options = get_options(); + /* Assume every non-bridge relay has an IPv4 address. + * Clients which use bridges may only know the IPv6 address of their + * bridge. */ + return (options->ClientUseIPv4 == 0 + || (!fascist_firewall_use_ipv6(options) + && options->UseBridges == 1)); +} + +/** Return true iff the firewall options, including ClientUseIPv4 0 and + * ClientUseIPv6 0, might block any OR address:port combination. + * Address preferences may still change which address is selected even if + * this function returns false. */ int firewall_is_fascist_or(void) { - return reachable_or_addr_policy != NULL; + return (reachable_or_addr_policy != NULL || firewall_is_fascist_impl()); +} + +/** Return true iff the firewall options, including ClientUseIPv4 0 and + * ClientUseIPv6 0, might block any Dir address:port combination. + * Address preferences may still change which address is selected even if + * this function returns false. + */ +int +firewall_is_fascist_dir(void) +{ + return (reachable_dir_addr_policy != NULL || firewall_is_fascist_impl()); } /** Return true iff <b>policy</b> (possibly NULL) will allow a @@ -317,49 +378,624 @@ addr_policy_permits_address(uint32_t addr, uint16_t port, return addr_policy_permits_tor_addr(&a, port, policy); } -/** Return true iff we think our firewall will let us make an OR connection to - * addr:port. */ -int -fascist_firewall_allows_address_or(const tor_addr_t *addr, uint16_t port) +/** Return true iff we think our firewall will let us make a connection to + * addr:port. + * + * If we are configured as a server, ignore any address family preference and + * just use IPv4. + * Otherwise: + * - return false for all IPv4 addresses: + * - if ClientUseIPv4 is 0, or + * if pref_only and pref_ipv6 are both true; + * - return false for all IPv6 addresses: + * - if fascist_firewall_use_ipv6() is 0, or + * - if pref_only is true and pref_ipv6 is false. + * + * Return false if addr is NULL or tor_addr_is_null(), or if port is 0. */ +STATIC int +fascist_firewall_allows_address(const tor_addr_t *addr, + uint16_t port, + smartlist_t *firewall_policy, + int pref_only, int pref_ipv6) { + const or_options_t *options = get_options(); + const int client_mode = !server_mode(options); + + if (!addr || tor_addr_is_null(addr) || !port) { + return 0; + } + + /* Clients stop using IPv4 if it's disabled. In most cases, clients also + * stop using IPv4 if it's not preferred. + * Servers must have IPv4 enabled and preferred. */ + if (tor_addr_family(addr) == AF_INET && client_mode && + (!options->ClientUseIPv4 || (pref_only && pref_ipv6))) { + return 0; + } + + /* Clients and Servers won't use IPv6 unless it's enabled (and in most + * cases, IPv6 must also be preferred before it will be used). */ + if (tor_addr_family(addr) == AF_INET6 && + (!fascist_firewall_use_ipv6(options) || (pref_only && !pref_ipv6))) { + return 0; + } + return addr_policy_permits_tor_addr(addr, port, - reachable_or_addr_policy); + firewall_policy); } -/** Return true iff we think our firewall will let us make an OR connection to - * <b>ri</b>. */ +/** Is this client configured to use IPv6? + * Use node_ipv6_or/dir_preferred() when checking a specific node and OR/Dir + * port: it supports bridge client per-node IPv6 preferences. + */ int -fascist_firewall_allows_or(const routerinfo_t *ri) +fascist_firewall_use_ipv6(const or_options_t *options) +{ + /* Clients use IPv6 if it's set, or they use bridges, or they don't use + * IPv4 */ + return (options->ClientUseIPv6 == 1 || options->UseBridges == 1 + || options->ClientUseIPv4 == 0); +} + +/** Do we prefer to connect to IPv6, ignoring ClientPreferIPv6ORPort and + * ClientPreferIPv6DirPort? + * If we're unsure, return -1, otherwise, return 1 for IPv6 and 0 for IPv4. + */ +static int +fascist_firewall_prefer_ipv6_impl(const or_options_t *options) { - /* XXXX proposal 118 */ - tor_addr_t addr; - tor_addr_from_ipv4h(&addr, ri->addr); - return fascist_firewall_allows_address_or(&addr, ri->or_port); + /* + Cheap implementation of config options ClientUseIPv4 & ClientUseIPv6 -- + If we're a server or IPv6 is disabled, use IPv4. + If IPv4 is disabled, use IPv6. + */ + + if (server_mode(options) || !fascist_firewall_use_ipv6(options)) { + return 0; + } + + if (!options->ClientUseIPv4) { + return 1; + } + + return -1; } -/** Return true iff we think our firewall will let us make an OR connection to - * <b>node</b>. */ +/** Do we prefer to connect to IPv6 ORPorts? + * Use node_ipv6_or_preferred() whenever possible: it supports bridge client + * per-node IPv6 preferences. + */ int -fascist_firewall_allows_node(const node_t *node) +fascist_firewall_prefer_ipv6_orport(const or_options_t *options) { - if (node->ri) { - return fascist_firewall_allows_or(node->ri); - } else if (node->rs) { - tor_addr_t addr; - tor_addr_from_ipv4h(&addr, node->rs->addr); - return fascist_firewall_allows_address_or(&addr, node->rs->or_port); + int pref_ipv6 = fascist_firewall_prefer_ipv6_impl(options); + + if (pref_ipv6 >= 0) { + return pref_ipv6; + } + + /* We can use both IPv4 and IPv6 - which do we prefer? */ + if (options->ClientPreferIPv6ORPort == 1) { + return 1; + } + + return 0; +} + +/** Do we prefer to connect to IPv6 DirPorts? + * + * (node_ipv6_dir_preferred() doesn't support bridge client per-node IPv6 + * preferences. There's no reason to use it instead of this function.) + */ +int +fascist_firewall_prefer_ipv6_dirport(const or_options_t *options) +{ + int pref_ipv6 = fascist_firewall_prefer_ipv6_impl(options); + + if (pref_ipv6 >= 0) { + return pref_ipv6; + } + + /* We can use both IPv4 and IPv6 - which do we prefer? */ + if (options->ClientPreferIPv6DirPort == 1) { + return 1; + } + + return 0; +} + +/** Return true iff we think our firewall will let us make a connection to + * addr:port. Uses ReachableORAddresses or ReachableDirAddresses based on + * fw_connection. + * If pref_only is true, return true if addr is in the client's preferred + * address family, which is IPv6 if pref_ipv6 is true, and IPv4 otherwise. + * If pref_only is false, ignore pref_ipv6, and return true if addr is allowed. + */ +int +fascist_firewall_allows_address_addr(const tor_addr_t *addr, uint16_t port, + firewall_connection_t fw_connection, + int pref_only, int pref_ipv6) +{ + if (fw_connection == FIREWALL_OR_CONNECTION) { + return fascist_firewall_allows_address(addr, port, + reachable_or_addr_policy, + pref_only, pref_ipv6); + } else if (fw_connection == FIREWALL_DIR_CONNECTION) { + return fascist_firewall_allows_address(addr, port, + reachable_dir_addr_policy, + pref_only, pref_ipv6); } else { + log_warn(LD_BUG, "Bad firewall_connection_t value %d.", + fw_connection); + return 0; + } +} + +/** Return true iff we think our firewall will let us make a connection to + * addr:port (ap). Uses ReachableORAddresses or ReachableDirAddresses based on + * fw_connection. + * pref_only and pref_ipv6 work as in fascist_firewall_allows_address_addr(). + */ +static int +fascist_firewall_allows_address_ap(const tor_addr_port_t *ap, + firewall_connection_t fw_connection, + int pref_only, int pref_ipv6) +{ + tor_assert(ap); + return fascist_firewall_allows_address_addr(&ap->addr, ap->port, + fw_connection, pref_only, + pref_ipv6); +} + +/* Return true iff we think our firewall will let us make a connection to + * ipv4h_or_addr:ipv4_or_port. ipv4h_or_addr is interpreted in host order. + * Uses ReachableORAddresses or ReachableDirAddresses based on + * fw_connection. + * pref_only and pref_ipv6 work as in fascist_firewall_allows_address_addr(). + */ +static int +fascist_firewall_allows_address_ipv4h(uint32_t ipv4h_or_addr, + uint16_t ipv4_or_port, + firewall_connection_t fw_connection, + int pref_only, int pref_ipv6) +{ + tor_addr_t ipv4_or_addr; + tor_addr_from_ipv4h(&ipv4_or_addr, ipv4h_or_addr); + return fascist_firewall_allows_address_addr(&ipv4_or_addr, ipv4_or_port, + fw_connection, pref_only, + pref_ipv6); +} + +/** Return true iff we think our firewall will let us make a connection to + * ipv4h_addr/ipv6_addr. Uses ipv4_orport/ipv6_orport/ReachableORAddresses or + * ipv4_dirport/ipv6_dirport/ReachableDirAddresses based on IPv4/IPv6 and + * <b>fw_connection</b>. + * pref_only and pref_ipv6 work as in fascist_firewall_allows_address_addr(). + */ +static int +fascist_firewall_allows_base(uint32_t ipv4h_addr, uint16_t ipv4_orport, + uint16_t ipv4_dirport, + const tor_addr_t *ipv6_addr, uint16_t ipv6_orport, + uint16_t ipv6_dirport, + firewall_connection_t fw_connection, + int pref_only, int pref_ipv6) +{ + if (fascist_firewall_allows_address_ipv4h(ipv4h_addr, + (fw_connection == FIREWALL_OR_CONNECTION + ? ipv4_orport + : ipv4_dirport), + fw_connection, + pref_only, pref_ipv6)) { return 1; } + + if (fascist_firewall_allows_address_addr(ipv6_addr, + (fw_connection == FIREWALL_OR_CONNECTION + ? ipv6_orport + : ipv6_dirport), + fw_connection, + pref_only, pref_ipv6)) { + return 1; + } + + return 0; +} + +/** Like fascist_firewall_allows_base(), but takes ri. */ +static int +fascist_firewall_allows_ri_impl(const routerinfo_t *ri, + firewall_connection_t fw_connection, + int pref_only, int pref_ipv6) +{ + if (!ri) { + return 0; + } + + /* Assume IPv4 and IPv6 DirPorts are the same */ + return fascist_firewall_allows_base(ri->addr, ri->or_port, ri->dir_port, + &ri->ipv6_addr, ri->ipv6_orport, + ri->dir_port, fw_connection, pref_only, + pref_ipv6); } -/** Return true iff we think our firewall will let us make a directory - * connection to addr:port. */ +/** Like fascist_firewall_allows_rs, but doesn't consult the node. */ +static int +fascist_firewall_allows_rs_impl(const routerstatus_t *rs, + firewall_connection_t fw_connection, + int pref_only, int pref_ipv6) +{ + if (!rs) { + return 0; + } + + /* Assume IPv4 and IPv6 DirPorts are the same */ + return fascist_firewall_allows_base(rs->addr, rs->or_port, rs->dir_port, + &rs->ipv6_addr, rs->ipv6_orport, + rs->dir_port, fw_connection, pref_only, + pref_ipv6); +} + +/** Like fascist_firewall_allows_base(), but takes rs. + * Consults the corresponding node, then falls back to rs if node is NULL. + * This should only happen when there's no valid consensus, and rs doesn't + * correspond to a bridge client's bridge. + */ int -fascist_firewall_allows_address_dir(const tor_addr_t *addr, uint16_t port) +fascist_firewall_allows_rs(const routerstatus_t *rs, + firewall_connection_t fw_connection, int pref_only) { - return addr_policy_permits_tor_addr(addr, port, - reachable_dir_addr_policy); + if (!rs) { + return 0; + } + + const node_t *node = node_get_by_id(rs->identity_digest); + + if (node) { + return fascist_firewall_allows_node(node, fw_connection, pref_only); + } else { + /* There's no node-specific IPv6 preference, so use the generic IPv6 + * preference instead. */ + const or_options_t *options = get_options(); + int pref_ipv6 = (fw_connection == FIREWALL_OR_CONNECTION + ? fascist_firewall_prefer_ipv6_orport(options) + : fascist_firewall_prefer_ipv6_dirport(options)); + + return fascist_firewall_allows_rs_impl(rs, fw_connection, pref_only, + pref_ipv6); + } +} + +/** Return true iff we think our firewall will let us make a connection to + * ipv6_addr:ipv6_orport based on ReachableORAddresses. + * If <b>fw_connection</b> is FIREWALL_DIR_CONNECTION, returns 0. + * pref_only and pref_ipv6 work as in fascist_firewall_allows_address_addr(). + */ +static int +fascist_firewall_allows_md_impl(const microdesc_t *md, + firewall_connection_t fw_connection, + int pref_only, int pref_ipv6) +{ + if (!md) { + return 0; + } + + /* Can't check dirport, it doesn't have one */ + if (fw_connection == FIREWALL_DIR_CONNECTION) { + return 0; + } + + /* Also can't check IPv4, doesn't have that either */ + return fascist_firewall_allows_address_addr(&md->ipv6_addr, md->ipv6_orport, + fw_connection, pref_only, + pref_ipv6); +} + +/** Like fascist_firewall_allows_base(), but takes node, and looks up pref_ipv6 + * from node_ipv6_or/dir_preferred(). */ +int +fascist_firewall_allows_node(const node_t *node, + firewall_connection_t fw_connection, + int pref_only) +{ + if (!node) { + return 0; + } + + node_assert_ok(node); + + const int pref_ipv6 = (fw_connection == FIREWALL_OR_CONNECTION + ? node_ipv6_or_preferred(node) + : node_ipv6_dir_preferred(node)); + + /* Sometimes, the rs is missing the IPv6 address info, and we need to go + * all the way to the md */ + if (node->ri && fascist_firewall_allows_ri_impl(node->ri, fw_connection, + pref_only, pref_ipv6)) { + return 1; + } else if (node->rs && fascist_firewall_allows_rs_impl(node->rs, + fw_connection, + pref_only, + pref_ipv6)) { + return 1; + } else if (node->md && fascist_firewall_allows_md_impl(node->md, + fw_connection, + pref_only, + pref_ipv6)) { + return 1; + } else { + /* If we know nothing, assume it's unreachable, we'll never get an address + * to connect to. */ + return 0; + } +} + +/** Like fascist_firewall_allows_rs(), but takes ds. */ +int +fascist_firewall_allows_dir_server(const dir_server_t *ds, + firewall_connection_t fw_connection, + int pref_only) +{ + if (!ds) { + return 0; + } + + /* A dir_server_t always has a fake_status. As long as it has the same + * addresses/ports in both fake_status and dir_server_t, this works fine. + * (See #17867.) + * This function relies on fascist_firewall_choose_address_rs looking up the + * node if it can, because that will get the latest info for the relay. */ + return fascist_firewall_allows_rs(&ds->fake_status, fw_connection, + pref_only); +} + +/** If a and b are both valid and allowed by fw_connection, + * choose one based on want_a and return it. + * Otherwise, return whichever is allowed. + * Otherwise, return NULL. + * pref_only and pref_ipv6 work as in fascist_firewall_allows_address_addr(). + */ +static const tor_addr_port_t * +fascist_firewall_choose_address_impl(const tor_addr_port_t *a, + const tor_addr_port_t *b, + int want_a, + firewall_connection_t fw_connection, + int pref_only, int pref_ipv6) +{ + const tor_addr_port_t *use_a = NULL; + const tor_addr_port_t *use_b = NULL; + + if (fascist_firewall_allows_address_ap(a, fw_connection, pref_only, + pref_ipv6)) { + use_a = a; + } + + if (fascist_firewall_allows_address_ap(b, fw_connection, pref_only, + pref_ipv6)) { + use_b = b; + } + + /* If both are allowed */ + if (use_a && use_b) { + /* Choose a if we want it */ + return (want_a ? use_a : use_b); + } else { + /* Choose a if we have it */ + return (use_a ? use_a : use_b); + } +} + +/** If a and b are both valid and preferred by fw_connection, + * choose one based on want_a and return it. + * Otherwise, return whichever is preferred. + * If neither are preferred, and pref_only is false: + * - If a and b are both allowed by fw_connection, + * choose one based on want_a and return it. + * - Otherwise, return whichever is preferred. + * Otherwise, return NULL. */ +STATIC const tor_addr_port_t * +fascist_firewall_choose_address(const tor_addr_port_t *a, + const tor_addr_port_t *b, + int want_a, + firewall_connection_t fw_connection, + int pref_only, int pref_ipv6) +{ + const tor_addr_port_t *pref = fascist_firewall_choose_address_impl( + a, b, want_a, + fw_connection, + 1, pref_ipv6); + if (pref_only || pref) { + /* If there is a preferred address, use it. If we can only use preferred + * addresses, and neither address is preferred, pref will be NULL, and we + * want to return NULL, so return it. */ + return pref; + } else { + /* If there's no preferred address, and we can return addresses that are + * not preferred, use an address that's allowed */ + return fascist_firewall_choose_address_impl(a, b, want_a, fw_connection, + 0, pref_ipv6); + } +} + +/** Copy an address and port into <b>ap</b> that we think our firewall will + * let us connect to. Uses ipv4_addr/ipv6_addr and + * ipv4_orport/ipv6_orport/ReachableORAddresses or + * ipv4_dirport/ipv6_dirport/ReachableDirAddresses based on IPv4/IPv6 and + * <b>fw_connection</b>. + * If pref_only, only choose preferred addresses. In either case, choose + * a preferred address before an address that's not preferred. + * If both addresses could be chosen (they are both preferred or both allowed) + * choose IPv6 if pref_ipv6 is true, otherwise choose IPv4. + * If neither address is chosen, return 0, else return 1. */ +static int +fascist_firewall_choose_address_base(const tor_addr_t *ipv4_addr, + uint16_t ipv4_orport, + uint16_t ipv4_dirport, + const tor_addr_t *ipv6_addr, + uint16_t ipv6_orport, + uint16_t ipv6_dirport, + firewall_connection_t fw_connection, + int pref_only, + int pref_ipv6, + tor_addr_port_t* ap) +{ + const tor_addr_port_t *result = NULL; + const int want_ipv4 = !pref_ipv6; + + tor_assert(ipv6_addr); + tor_assert(ap); + + tor_addr_port_t ipv4_ap; + tor_addr_copy(&ipv4_ap.addr, ipv4_addr); + ipv4_ap.port = (fw_connection == FIREWALL_OR_CONNECTION + ? ipv4_orport + : ipv4_dirport); + + tor_addr_port_t ipv6_ap; + tor_addr_copy(&ipv6_ap.addr, ipv6_addr); + ipv6_ap.port = (fw_connection == FIREWALL_OR_CONNECTION + ? ipv6_orport + : ipv6_dirport); + + result = fascist_firewall_choose_address(&ipv4_ap, &ipv6_ap, + want_ipv4, + fw_connection, pref_only, + pref_ipv6); + + if (result) { + tor_addr_copy(&ap->addr, &result->addr); + ap->port = result->port; + return 1; + } else { + return 0; + } +} + +/** Like fascist_firewall_choose_address_base(), but takes a host-order IPv4 + * address as the first parameter. */ +static int +fascist_firewall_choose_address_ipv4h(uint32_t ipv4h_addr, + uint16_t ipv4_orport, + uint16_t ipv4_dirport, + const tor_addr_t *ipv6_addr, + uint16_t ipv6_orport, + uint16_t ipv6_dirport, + firewall_connection_t fw_connection, + int pref_only, + int pref_ipv6, + tor_addr_port_t* ap) +{ + tor_addr_t ipv4_addr; + tor_addr_from_ipv4h(&ipv4_addr, ipv4h_addr); + return fascist_firewall_choose_address_base(&ipv4_addr, ipv4_orport, + ipv4_dirport, ipv6_addr, + ipv6_orport, ipv6_dirport, + fw_connection, pref_only, + pref_ipv6, ap); +} + +/** Like fascist_firewall_choose_address_base(), but takes <b>rs</b>. + * Consults the corresponding node, then falls back to rs if node is NULL. + * This should only happen when there's no valid consensus, and rs doesn't + * correspond to a bridge client's bridge. + */ +int +fascist_firewall_choose_address_rs(const routerstatus_t *rs, + firewall_connection_t fw_connection, + int pref_only, tor_addr_port_t* ap) +{ + if (!rs) { + return 0; + } + + tor_assert(ap); + + const node_t *node = node_get_by_id(rs->identity_digest); + + if (node) { + return fascist_firewall_choose_address_node(node, fw_connection, pref_only, + ap); + } else { + /* There's no node-specific IPv6 preference, so use the generic IPv6 + * preference instead. */ + const or_options_t *options = get_options(); + int pref_ipv6 = (fw_connection == FIREWALL_OR_CONNECTION + ? fascist_firewall_prefer_ipv6_orport(options) + : fascist_firewall_prefer_ipv6_dirport(options)); + + /* Assume IPv4 and IPv6 DirPorts are the same. + * Assume the IPv6 OR and Dir addresses are the same. */ + return fascist_firewall_choose_address_ipv4h(rs->addr, + rs->or_port, + rs->dir_port, + &rs->ipv6_addr, + rs->ipv6_orport, + rs->dir_port, + fw_connection, + pref_only, + pref_ipv6, + ap); + } +} + +/** Like fascist_firewall_choose_address_base(), but takes <b>node</b>, and + * looks up the node's IPv6 preference rather than taking an argument + * for pref_ipv6. */ +int +fascist_firewall_choose_address_node(const node_t *node, + firewall_connection_t fw_connection, + int pref_only, tor_addr_port_t *ap) +{ + if (!node) { + return 0; + } + + node_assert_ok(node); + + const int pref_ipv6_node = (fw_connection == FIREWALL_OR_CONNECTION + ? node_ipv6_or_preferred(node) + : node_ipv6_dir_preferred(node)); + + tor_addr_port_t ipv4_or_ap; + node_get_prim_orport(node, &ipv4_or_ap); + tor_addr_port_t ipv4_dir_ap; + node_get_prim_dirport(node, &ipv4_dir_ap); + + tor_addr_port_t ipv6_or_ap; + node_get_pref_ipv6_orport(node, &ipv6_or_ap); + tor_addr_port_t ipv6_dir_ap; + node_get_pref_ipv6_dirport(node, &ipv6_dir_ap); + + /* Assume the IPv6 OR and Dir addresses are the same. */ + return fascist_firewall_choose_address_base(&ipv4_or_ap.addr, + ipv4_or_ap.port, + ipv4_dir_ap.port, + &ipv6_or_ap.addr, + ipv6_or_ap.port, + ipv6_dir_ap.port, + fw_connection, + pref_only, + pref_ipv6_node, + ap); +} + +/** Like fascist_firewall_choose_address_rs(), but takes <b>ds</b>. */ +int +fascist_firewall_choose_address_dir_server(const dir_server_t *ds, + firewall_connection_t fw_connection, + int pref_only, + tor_addr_port_t *ap) +{ + if (!ds) { + return 0; + } + + /* A dir_server_t always has a fake_status. As long as it has the same + * addresses/ports in both fake_status and dir_server_t, this works fine. + * (See #17867.) + * This function relies on fascist_firewall_choose_address_rs looking up the + * node if it can, because that will get the latest info for the relay. */ + return fascist_firewall_choose_address_rs(&ds->fake_status, fw_connection, + pref_only, ap); } /** Return 1 if <b>addr</b> is permitted to connect to our dir port, @@ -1065,19 +1701,21 @@ exit_policy_remove_redundancies(smartlist_t *dest) /** Reject private helper for policies_parse_exit_policy_internal: rejects * publicly routable addresses on this exit relay. * - * Add reject entries to the linked list *dest: - * - if configured_addresses is non-NULL, add entries that reject each - * tor_addr_t* in the list as a destination. - * - if reject_interface_addresses is true, add entries that reject each + * Add reject entries to the linked list *<b>dest</b>: + * <ul> + * <li>if configured_addresses is non-NULL, add entries that reject each + * tor_addr_t in the list as a destination. + * <li>if reject_interface_addresses is true, add entries that reject each * public IPv4 and IPv6 address of each interface on this machine. - * - if reject_configured_port_addresses is true, add entries that reject + * <li>if reject_configured_port_addresses is true, add entries that reject * each IPv4 and IPv6 address configured for a port. + * </ul> * * IPv6 entries are only added if ipv6_exit is true. (All IPv6 addresses are * already blocked by policies_parse_exit_policy_internal if ipv6_exit is * false.) * - * The list *dest is created as needed. + * The list in <b>dest</b> is created as needed. */ void policies_parse_exit_policy_reject_private( diff --git a/src/or/policies.h b/src/or/policies.h index 007f494482..aaa6fa0a4e 100644 --- a/src/or/policies.h +++ b/src/or/policies.h @@ -1,7 +1,7 @@ /* Copyright (c) 2001 Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** @@ -22,13 +22,44 @@ #define EXIT_POLICY_REJECT_PRIVATE (1 << 1) #define EXIT_POLICY_ADD_DEFAULT (1 << 2) +typedef enum firewall_connection_t { + FIREWALL_OR_CONNECTION = 0, + FIREWALL_DIR_CONNECTION = 1 +} firewall_connection_t; + typedef int exit_policy_parser_cfg_t; int firewall_is_fascist_or(void); -int fascist_firewall_allows_address_or(const tor_addr_t *addr, uint16_t port); -int fascist_firewall_allows_or(const routerinfo_t *ri); -int fascist_firewall_allows_node(const node_t *node); -int fascist_firewall_allows_address_dir(const tor_addr_t *addr, uint16_t port); +int firewall_is_fascist_dir(void); +int fascist_firewall_use_ipv6(const or_options_t *options); +int fascist_firewall_prefer_ipv6_orport(const or_options_t *options); +int fascist_firewall_prefer_ipv6_dirport(const or_options_t *options); + +int fascist_firewall_allows_address_addr(const tor_addr_t *addr, + uint16_t port, + firewall_connection_t fw_connection, + int pref_only, int pref_ipv6); + +int fascist_firewall_allows_rs(const routerstatus_t *rs, + firewall_connection_t fw_connection, + int pref_only); +int fascist_firewall_allows_node(const node_t *node, + firewall_connection_t fw_connection, + int pref_only); +int fascist_firewall_allows_dir_server(const dir_server_t *ds, + firewall_connection_t fw_connection, + int pref_only); + +int fascist_firewall_choose_address_rs(const routerstatus_t *rs, + firewall_connection_t fw_connection, + int pref_only, tor_addr_port_t* ap); +int fascist_firewall_choose_address_node(const node_t *node, + firewall_connection_t fw_connection, + int pref_only, tor_addr_port_t* ap); +int fascist_firewall_choose_address_dir_server(const dir_server_t *ds, + firewall_connection_t fw_connection, + int pref_only, tor_addr_port_t* ap); + int dir_policy_permits_address(const tor_addr_t *addr); int socks_policy_permits_address(const tor_addr_t *addr); int authdir_policy_permits_address(uint32_t addr, uint16_t port); @@ -94,6 +125,17 @@ addr_policy_result_t compare_tor_addr_to_short_policy( #ifdef POLICIES_PRIVATE STATIC void append_exit_policy_string(smartlist_t **policy, const char *more); +STATIC int fascist_firewall_allows_address(const tor_addr_t *addr, + uint16_t port, + smartlist_t *firewall_policy, + int pref_only, int pref_ipv6); +STATIC const tor_addr_port_t * fascist_firewall_choose_address( + const tor_addr_port_t *a, + const tor_addr_port_t *b, + int want_a, + firewall_connection_t fw_connection, + int pref_only, int pref_ipv6); + #endif #endif diff --git a/src/or/reasons.c b/src/or/reasons.c index 23ab6041a6..36921cafcd 100644 --- a/src/or/reasons.c +++ b/src/or/reasons.c @@ -1,5 +1,5 @@ /* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** diff --git a/src/or/reasons.h b/src/or/reasons.h index 00a099061b..2e12c93728 100644 --- a/src/or/reasons.h +++ b/src/or/reasons.h @@ -1,7 +1,7 @@ /* Copyright (c) 2001 Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** diff --git a/src/or/relay.c b/src/or/relay.c index aea51a165b..7022c4b37a 100644 --- a/src/or/relay.c +++ b/src/or/relay.c @@ -1,7 +1,7 @@ /* Copyright (c) 2001 Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** @@ -148,20 +148,15 @@ relay_digest_matches(crypto_digest_t *digest, cell_t *cell) * * If <b>encrypt_mode</b> is 1 then encrypt, else decrypt. * - * Return -1 if the crypto fails, else return 0. + * Returns 0. */ static int relay_crypt_one_payload(crypto_cipher_t *cipher, uint8_t *in, int encrypt_mode) { - int r; (void)encrypt_mode; - r = crypto_cipher_crypt_inplace(cipher, (char*) in, CELL_PAYLOAD_SIZE); + crypto_cipher_crypt_inplace(cipher, (char*) in, CELL_PAYLOAD_SIZE); - if (r) { - log_warn(LD_BUG,"Error during relay encryption"); - return -1; - } return 0; } diff --git a/src/or/relay.h b/src/or/relay.h index a4f583d11e..e15551ca51 100644 --- a/src/or/relay.h +++ b/src/or/relay.h @@ -1,7 +1,7 @@ /* Copyright (c) 2001 Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** diff --git a/src/or/rendcache.c b/src/or/rendcache.c index c69671e289..cb8c14b756 100644 --- a/src/or/rendcache.c +++ b/src/or/rendcache.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2015, The Tor Project, Inc. */ +/* Copyright (c) 2015-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** @@ -13,6 +13,7 @@ #include "rephist.h" #include "routerlist.h" #include "routerparse.h" +#include "rendcommon.h" /** Map from service id (as generated by rend_get_service_id) to * rend_cache_entry_t. */ diff --git a/src/or/rendcache.h b/src/or/rendcache.h index decb040ee7..867270f996 100644 --- a/src/or/rendcache.h +++ b/src/or/rendcache.h @@ -1,4 +1,4 @@ -/* Copyright (c) 2015, The Tor Project, Inc. */ +/* Copyright (c) 2015-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** diff --git a/src/or/rendclient.c b/src/or/rendclient.c index e812a06ce6..7e1b0e1908 100644 --- a/src/or/rendclient.c +++ b/src/or/rendclient.c @@ -1,5 +1,5 @@ /* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** @@ -1367,11 +1367,19 @@ rend_client_get_random_intro_impl(const rend_cache_entry_t *entry, smartlist_del(usable_nodes, i); goto again; } +#ifdef ENABLE_TOR2WEB_MODE + new_extend_info = extend_info_from_node(node, options->Tor2webMode); +#else new_extend_info = extend_info_from_node(node, 0); +#endif if (!new_extend_info) { + const char *alternate_reason = ""; +#ifdef ENABLE_TOR2WEB_MODE + alternate_reason = ", or we cannot connect directly to it"; +#endif log_info(LD_REND, "We don't have a descriptor for the intro-point relay " - "'%s'; trying another.", - extend_info_describe(intro->extend_info)); + "'%s'%s; trying another.", + extend_info_describe(intro->extend_info), alternate_reason); smartlist_del(usable_nodes, i); goto again; } else { diff --git a/src/or/rendclient.h b/src/or/rendclient.h index 124433ef31..e90dac07ab 100644 --- a/src/or/rendclient.h +++ b/src/or/rendclient.h @@ -1,7 +1,7 @@ /* Copyright (c) 2001 Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** diff --git a/src/or/rendcommon.c b/src/or/rendcommon.c index 8c02b67556..79509cbe2f 100644 --- a/src/or/rendcommon.c +++ b/src/or/rendcommon.c @@ -1,5 +1,5 @@ /* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** @@ -17,8 +17,10 @@ #include "rendmid.h" #include "rendservice.h" #include "rephist.h" +#include "router.h" #include "routerlist.h" #include "routerparse.h" +#include "networkstatus.h" /** Return 0 if one and two are the same service ids, else -1 or 1 */ int @@ -935,3 +937,75 @@ rend_data_client_create(const char *onion_address, const char *desc_id, return NULL; } +/** Determine the routers that are responsible for <b>id</b> (binary) and + * add pointers to those routers' routerstatus_t to <b>responsible_dirs</b>. + * Return -1 if we're returning an empty smartlist, else return 0. + */ +int +hid_serv_get_responsible_directories(smartlist_t *responsible_dirs, + const char *id) +{ + int start, found, n_added = 0, i; + networkstatus_t *c = networkstatus_get_latest_consensus(); + if (!c || !smartlist_len(c->routerstatus_list)) { + log_warn(LD_REND, "We don't have a consensus, so we can't perform v2 " + "rendezvous operations."); + return -1; + } + tor_assert(id); + start = networkstatus_vote_find_entry_idx(c, id, &found); + if (start == smartlist_len(c->routerstatus_list)) start = 0; + i = start; + do { + routerstatus_t *r = smartlist_get(c->routerstatus_list, i); + if (r->is_hs_dir) { + smartlist_add(responsible_dirs, r); + if (++n_added == REND_NUMBER_OF_CONSECUTIVE_REPLICAS) + return 0; + } + if (++i == smartlist_len(c->routerstatus_list)) + i = 0; + } while (i != start); + + /* Even though we don't have the desired number of hidden service + * directories, be happy if we got any. */ + return smartlist_len(responsible_dirs) ? 0 : -1; +} + +/** Return true if this node is currently acting as hidden service + * directory, false otherwise. */ +int +hid_serv_acting_as_directory(void) +{ + const routerinfo_t *me = router_get_my_routerinfo(); + if (!me) + return 0; + return 1; +} + +/** Return true if this node is responsible for storing the descriptor ID + * in <b>query</b> and false otherwise. */ +MOCK_IMPL(int, hid_serv_responsible_for_desc_id, + (const char *query)) +{ + const routerinfo_t *me; + routerstatus_t *last_rs; + const char *my_id, *last_id; + int result; + smartlist_t *responsible; + if (!hid_serv_acting_as_directory()) + return 0; + if (!(me = router_get_my_routerinfo())) + return 0; /* This is redundant, but let's be paranoid. */ + my_id = me->cache_info.identity_digest; + responsible = smartlist_new(); + if (hid_serv_get_responsible_directories(responsible, query) < 0) { + smartlist_free(responsible); + return 0; + } + last_rs = smartlist_get(responsible, smartlist_len(responsible)-1); + last_id = last_rs->identity_digest; + result = rend_id_is_in_interval(my_id, query, last_id); + smartlist_free(responsible); + return result; +} diff --git a/src/or/rendcommon.h b/src/or/rendcommon.h index 04e34af453..fe45299598 100644 --- a/src/or/rendcommon.h +++ b/src/or/rendcommon.h @@ -1,7 +1,7 @@ /* Copyright (c) 2001 Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** @@ -57,6 +57,10 @@ int rend_id_is_in_interval(const char *a, const char *b, const char *c); void rend_get_descriptor_id_bytes(char *descriptor_id_out, const char *service_id, const char *secret_id_part); +int hid_serv_get_responsible_directories(smartlist_t *responsible_dirs, + const char *id); +int hid_serv_acting_as_directory(void); +MOCK_DECL(int, hid_serv_responsible_for_desc_id, (const char *id)); rend_data_t *rend_data_dup(const rend_data_t *data); rend_data_t *rend_data_client_create(const char *onion_address, diff --git a/src/or/rendmid.c b/src/or/rendmid.c index cbfbcbe051..a33ad92966 100644 --- a/src/or/rendmid.c +++ b/src/or/rendmid.c @@ -1,5 +1,5 @@ /* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** diff --git a/src/or/rendmid.h b/src/or/rendmid.h index 6bd691a740..10d1287085 100644 --- a/src/or/rendmid.h +++ b/src/or/rendmid.h @@ -1,7 +1,7 @@ /* Copyright (c) 2001 Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** diff --git a/src/or/rendservice.c b/src/or/rendservice.c index 7471c6252f..e9a6c9df31 100644 --- a/src/or/rendservice.c +++ b/src/or/rendservice.c @@ -1,5 +1,5 @@ /* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** diff --git a/src/or/rendservice.h b/src/or/rendservice.h index a16a99cf88..101b37e18d 100644 --- a/src/or/rendservice.h +++ b/src/or/rendservice.h @@ -1,7 +1,7 @@ /* Copyright (c) 2001 Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** diff --git a/src/or/rephist.c b/src/or/rephist.c index d55317947c..8654cd3085 100644 --- a/src/or/rephist.c +++ b/src/or/rephist.c @@ -1,5 +1,5 @@ /* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** diff --git a/src/or/rephist.h b/src/or/rephist.h index f94b4e8ff1..145da97d02 100644 --- a/src/or/rephist.h +++ b/src/or/rephist.h @@ -1,7 +1,7 @@ /* Copyright (c) 2001 Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** diff --git a/src/or/replaycache.c b/src/or/replaycache.c index 82e5c44d3d..23a1737b18 100644 --- a/src/or/replaycache.c +++ b/src/or/replaycache.c @@ -1,4 +1,4 @@ - /* Copyright (c) 2012-2015, The Tor Project, Inc. */ + /* Copyright (c) 2012-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /* diff --git a/src/or/replaycache.h b/src/or/replaycache.h index 9c409f2fd7..64a6caf5f5 100644 --- a/src/or/replaycache.h +++ b/src/or/replaycache.h @@ -1,4 +1,4 @@ -/* Copyright (c) 2012-2015, The Tor Project, Inc. */ +/* Copyright (c) 2012-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** diff --git a/src/or/router.c b/src/or/router.c index 741e1edb22..80732c9036 100644 --- a/src/or/router.c +++ b/src/or/router.c @@ -1,7 +1,7 @@ /* Copyright (c) 2001 Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #define ROUTER_PRIVATE @@ -1293,14 +1293,15 @@ consider_testing_reachability(int test_or, int test_dir) extend_info_free(ei); } + /* XXX IPv6 self testing */ tor_addr_from_ipv4h(&addr, me->addr); if (test_dir && !check_whether_dirport_reachable() && !connection_get_by_type_addr_port_purpose( CONN_TYPE_DIR, &addr, me->dir_port, DIR_PURPOSE_FETCH_SERVERDESC)) { /* ask myself, via tor, for my server descriptor. */ - directory_initiate_command(&addr, - me->or_port, me->dir_port, + directory_initiate_command(&addr, me->or_port, + &addr, me->dir_port, me->cache_info.identity_digest, DIR_PURPOSE_FETCH_SERVERDESC, ROUTER_PURPOSE_GENERAL, @@ -1739,7 +1740,8 @@ router_upload_dir_desc_to_dirservers(int force) int router_compare_to_my_exit_policy(const tor_addr_t *addr, uint16_t port) { - if (!router_get_my_routerinfo()) /* make sure desc_routerinfo exists */ + const routerinfo_t *me = router_get_my_routerinfo(); + if (!me) /* make sure routerinfo exists */ return -1; /* make sure it's resolved to something. this way we can't get a @@ -1747,20 +1749,21 @@ router_compare_to_my_exit_policy(const tor_addr_t *addr, uint16_t port) if (tor_addr_is_null(addr)) return -1; - /* look at desc_routerinfo->exit_policy for both the v4 and the v6 - * policies. The exit_policy field in desc_routerinfo is a bit unusual, - * in that it contains IPv6 and IPv6 entries. We don't want to look - * at desc_routerinfio->ipv6_exit_policy, since that's a port summary. */ + /* look at router_get_my_routerinfo()->exit_policy for both the v4 and the + * v6 policies. The exit_policy field in router_get_my_routerinfo() is a + * bit unusual, in that it contains IPv6 and IPv6 entries. We don't want to + * look at router_get_my_routerinfo()->ipv6_exit_policy, since that's a port + * summary. */ if ((tor_addr_family(addr) == AF_INET || tor_addr_family(addr) == AF_INET6)) { return compare_tor_addr_to_addr_policy(addr, port, - desc_routerinfo->exit_policy) != ADDR_POLICY_ACCEPTED; + me->exit_policy) != ADDR_POLICY_ACCEPTED; #if 0 } else if (tor_addr_family(addr) == AF_INET6) { return get_options()->IPv6Exit && desc_routerinfo->ipv6_exit_policy && compare_tor_addr_to_short_policy(addr, port, - desc_routerinfo->ipv6_exit_policy) != ADDR_POLICY_ACCEPTED; + me->ipv6_exit_policy) != ADDR_POLICY_ACCEPTED; #endif } else { return -1; @@ -1772,10 +1775,10 @@ router_compare_to_my_exit_policy(const tor_addr_t *addr, uint16_t port) MOCK_IMPL(int, router_my_exit_policy_is_reject_star,(void)) { - if (!router_get_my_routerinfo()) /* make sure desc_routerinfo exists */ + if (!router_get_my_routerinfo()) /* make sure routerinfo exists */ return -1; - return desc_routerinfo->policy_is_reject_star; + return router_get_my_routerinfo()->policy_is_reject_star; } /** Return true iff I'm a server and <b>digest</b> is equal to @@ -1834,12 +1837,13 @@ const char * router_get_my_descriptor(void) { const char *body; - if (!router_get_my_routerinfo()) + const routerinfo_t *me = router_get_my_routerinfo(); + if (! me) return NULL; - tor_assert(desc_routerinfo->cache_info.saved_location == SAVED_NOWHERE); - body = signed_descriptor_get_body(&desc_routerinfo->cache_info); + tor_assert(me->cache_info.saved_location == SAVED_NOWHERE); + body = signed_descriptor_get_body(&me->cache_info); /* Make sure this is nul-terminated. */ - tor_assert(!body[desc_routerinfo->cache_info.signed_descriptor_len]); + tor_assert(!body[me->cache_info.signed_descriptor_len]); log_debug(LD_GENERAL,"my desc is '%s'", body); return body; } @@ -2242,10 +2246,10 @@ check_descriptor_bandwidth_changed(time_t now) { static time_t last_changed = 0; uint64_t prev, cur; - if (!desc_routerinfo) + if (!router_get_my_routerinfo()) return; - prev = desc_routerinfo->bandwidthcapacity; + prev = router_get_my_routerinfo()->bandwidthcapacity; cur = we_are_hibernating() ? 0 : rep_hist_bandwidth_assess(); if ((prev != cur && (!prev || !cur)) || cur > prev*2 || @@ -2299,11 +2303,11 @@ check_descriptor_ipaddress_changed(time_t now) (void) now; - if (!desc_routerinfo) + if (router_get_my_routerinfo() == NULL) return; /* XXXX ipv6 */ - prev = desc_routerinfo->addr; + prev = router_get_my_routerinfo()->addr; if (resolve_my_address(LOG_INFO, options, &cur, &method, &hostname) < 0) { log_info(LD_CONFIG,"options->Address didn't resolve into an IP."); return; @@ -3410,28 +3414,16 @@ router_free_all(void) /** Return a smartlist of tor_addr_port_t's with all the OR ports of <b>ri</b>. Note that freeing of the items in the list as well as - the smartlist itself is the callers responsibility. - - XXX duplicating code from node_get_all_orports(). */ + the smartlist itself is the callers responsibility. */ smartlist_t * router_get_all_orports(const routerinfo_t *ri) { - smartlist_t *sl = smartlist_new(); tor_assert(ri); - - if (ri->addr != 0) { - tor_addr_port_t *ap = tor_malloc(sizeof(tor_addr_port_t)); - tor_addr_from_ipv4h(&ap->addr, ri->addr); - ap->port = ri->or_port; - smartlist_add(sl, ap); - } - if (!tor_addr_is_null(&ri->ipv6_addr)) { - tor_addr_port_t *ap = tor_malloc(sizeof(tor_addr_port_t)); - tor_addr_copy(&ap->addr, &ri->ipv6_addr); - ap->port = ri->or_port; - smartlist_add(sl, ap); - } - - return sl; + node_t fake_node; + memset(&fake_node, 0, sizeof(fake_node)); + /* we don't modify ri, fake_node is passed as a const node_t * + */ + fake_node.ri = (routerinfo_t *)ri; + return node_get_all_orports(&fake_node); } diff --git a/src/or/router.h b/src/or/router.h index ca590e3217..5165462a13 100644 --- a/src/or/router.h +++ b/src/or/router.h @@ -1,7 +1,7 @@ /* Copyright (c) 2001 Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** diff --git a/src/or/routerkeys.c b/src/or/routerkeys.c index d88bfca13a..34e9fc58ee 100644 --- a/src/or/routerkeys.c +++ b/src/or/routerkeys.c @@ -1,6 +1,14 @@ -/* Copyright (c) 2014, The Tor Project, Inc. */ +/* Copyright (c) 2014-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ +/** + * \file routerkeys.c + * + * \brief Functions and structures to handle generating and maintaining the + * set of keypairs necessary to be an OR. (Some of the code in router.c + * belongs here.) + */ + #include "or.h" #include "config.h" #include "router.h" @@ -927,7 +935,7 @@ generate_ed_link_cert(const or_options_t *options, time_t now) return -1; } - const digests_t *digests = tor_x509_cert_get_cert_digests(link); + const common_digests_t *digests = tor_x509_cert_get_cert_digests(link); if (link_cert_cert && ! EXPIRES_SOON(link_cert_cert, options->TestingLinkKeySlop) && @@ -972,7 +980,7 @@ should_make_new_ed_keys(const or_options_t *options, const time_t now) if (tor_tls_get_my_certs(1, &link, &id) < 0 || link == NULL) return 1; - const digests_t *digests = tor_x509_cert_get_cert_digests(link); + const common_digests_t *digests = tor_x509_cert_get_cert_digests(link); if (!fast_memeq(digests->d[DIGEST_SHA256], link_cert_cert->signed_key.pubkey, diff --git a/src/or/routerkeys.h b/src/or/routerkeys.h index 0e1c62571f..be9b19aea8 100644 --- a/src/or/routerkeys.h +++ b/src/or/routerkeys.h @@ -1,4 +1,4 @@ -/* Copyright (c) 2014, The Tor Project, Inc. */ +/* Copyright (c) 2014-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #ifndef TOR_ROUTERKEYS_H diff --git a/src/or/routerlist.c b/src/or/routerlist.c index 139a2924fc..7f20aa9c3e 100644 --- a/src/or/routerlist.c +++ b/src/or/routerlist.c @@ -1,7 +1,7 @@ /* Copyright (c) 2001 Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** @@ -13,6 +13,7 @@ #define ROUTERLIST_PRIVATE #include "or.h" +#include "backtrace.h" #include "crypto_ed25519.h" #include "circuitstats.h" #include "config.h" @@ -1460,9 +1461,190 @@ router_pick_dirserver_generic(smartlist_t *sourcelist, return router_pick_trusteddirserver_impl(sourcelist, type, flags, NULL); } +/* Check if we already have a directory fetch from ap, for serverdesc + * (including extrainfo) or microdesc documents. + * If so, return 1, if not, return 0. + * Also returns 0 if addr is NULL, tor_addr_is_null(addr), or dir_port is 0. + */ +STATIC int +router_is_already_dir_fetching(const tor_addr_port_t *ap, int serverdesc, + int microdesc) +{ + if (!ap || tor_addr_is_null(&ap->addr) || !ap->port) { + return 0; + } + + /* XX/teor - we're not checking tunnel connections here, see #17848 + */ + if (serverdesc && ( + connection_get_by_type_addr_port_purpose( + CONN_TYPE_DIR, &ap->addr, ap->port, DIR_PURPOSE_FETCH_SERVERDESC) + || connection_get_by_type_addr_port_purpose( + CONN_TYPE_DIR, &ap->addr, ap->port, DIR_PURPOSE_FETCH_EXTRAINFO))) { + return 1; + } + + if (microdesc && ( + connection_get_by_type_addr_port_purpose( + CONN_TYPE_DIR, &ap->addr, ap->port, DIR_PURPOSE_FETCH_MICRODESC))) { + return 1; + } + + return 0; +} + +/* Check if we already have a directory fetch from ds, for serverdesc + * (including extrainfo) or microdesc documents. + * If so, return 1, if not, return 0. + */ +static int +router_is_already_dir_fetching_ds(const dir_server_t *ds, + int serverdesc, + int microdesc) +{ + tor_addr_port_t ipv4_dir_ap, ipv6_dir_ap; + + /* Assume IPv6 DirPort is the same as IPv4 DirPort */ + tor_addr_from_ipv4h(&ipv4_dir_ap.addr, ds->addr); + ipv4_dir_ap.port = ds->dir_port; + tor_addr_copy(&ipv6_dir_ap.addr, &ds->ipv6_addr); + ipv6_dir_ap.port = ds->dir_port; + + return (router_is_already_dir_fetching(&ipv4_dir_ap, serverdesc, microdesc) + || router_is_already_dir_fetching(&ipv6_dir_ap, serverdesc, microdesc)); +} + +/* Check if we already have a directory fetch from rs, for serverdesc + * (including extrainfo) or microdesc documents. + * If so, return 1, if not, return 0. + */ +static int +router_is_already_dir_fetching_rs(const routerstatus_t *rs, + int serverdesc, + int microdesc) +{ + tor_addr_port_t ipv4_dir_ap, ipv6_dir_ap; + + /* Assume IPv6 DirPort is the same as IPv4 DirPort */ + tor_addr_from_ipv4h(&ipv4_dir_ap.addr, rs->addr); + ipv4_dir_ap.port = rs->dir_port; + tor_addr_copy(&ipv6_dir_ap.addr, &rs->ipv6_addr); + ipv6_dir_ap.port = rs->dir_port; + + return (router_is_already_dir_fetching(&ipv4_dir_ap, serverdesc, microdesc) + || router_is_already_dir_fetching(&ipv6_dir_ap, serverdesc, microdesc)); +} + +#ifndef LOG_FALSE_POSITIVES_DURING_BOOTSTRAP +#define LOG_FALSE_POSITIVES_DURING_BOOTSTRAP 0 +#endif + +/* Log a message if rs is not found or not a preferred address */ +static void +router_picked_poor_directory_log(const routerstatus_t *rs) +{ + const networkstatus_t *usable_consensus; + usable_consensus = networkstatus_get_reasonably_live_consensus(time(NULL), + usable_consensus_flavor()); + +#if !LOG_FALSE_POSITIVES_DURING_BOOTSTRAP + /* Don't log early in the bootstrap process, it's normal to pick from a + * small pool of nodes. Of course, this won't help if we're trying to + * diagnose bootstrap issues. */ + if (!smartlist_len(nodelist_get_list()) || !usable_consensus + || !router_have_minimum_dir_info()) { + return; + } +#endif + + /* We couldn't find a node, or the one we have doesn't fit our preferences. + * This might be a bug. */ + if (!rs) { + log_warn(LD_BUG, "Firewall denied all OR and Dir addresses for all relays " + "when searching for a directory."); + log_backtrace(LOG_WARN, LD_BUG, "Node search initiated by"); + } else if (!fascist_firewall_allows_rs(rs, FIREWALL_OR_CONNECTION, 1) + && !fascist_firewall_allows_rs(rs, FIREWALL_DIR_CONNECTION, 1) + ) { + log_info(LD_BUG, "Selected a directory %s with non-preferred OR and Dir " + "addresses for launching a connection: " + "IPv4 %s OR %d Dir %d IPv6 %s OR %d Dir %d", + routerstatus_describe(rs), + fmt_addr32(rs->addr), rs->or_port, + rs->dir_port, fmt_addr(&rs->ipv6_addr), + rs->ipv6_orport, rs->dir_port); + log_backtrace(LOG_INFO, LD_BUG, "Node search initiated by"); + } +} + +#undef LOG_FALSE_POSITIVES_DURING_BOOTSTRAP + /** How long do we avoid using a directory server after it's given us a 503? */ #define DIR_503_TIMEOUT (60*60) +/* Common retry code for router_pick_directory_server_impl and + * router_pick_trusteddirserver_impl. Retry with the non-preferred IP version. + * Must be called before RETRY_WITHOUT_EXCLUDE(). + * + * If we got no result, and we are applying IP preferences, and we are a + * client that could use an alternate IP version, try again with the + * opposite preferences. */ +#define RETRY_ALTERNATE_IP_VERSION(retry_label) \ + STMT_BEGIN \ + if (result == NULL && try_ip_pref && options->ClientUseIPv4 \ + && fascist_firewall_use_ipv6(options) && !server_mode(options) \ + && n_not_preferred && !n_busy) { \ + n_excluded = 0; \ + n_busy = 0; \ + try_ip_pref = 0; \ + n_not_preferred = 0; \ + goto retry_label; \ + } \ + STMT_END \ + +/* Common retry code for router_pick_directory_server_impl and + * router_pick_trusteddirserver_impl. Retry without excluding nodes, but with + * the preferred IP version. Must be called after RETRY_ALTERNATE_IP_VERSION(). + * + * If we got no result, and we are excluding nodes, and StrictNodes is + * not set, try again without excluding nodes. */ +#define RETRY_WITHOUT_EXCLUDE(retry_label) \ + STMT_BEGIN \ + if (result == NULL && try_excluding && !options->StrictNodes \ + && n_excluded && !n_busy) { \ + try_excluding = 0; \ + n_excluded = 0; \ + n_busy = 0; \ + try_ip_pref = 1; \ + n_not_preferred = 0; \ + goto retry_label; \ + } \ + STMT_END + +/* When iterating through the routerlist, can OR address/port preference + * and reachability checks be skipped? + */ +static int +router_skip_or_reachability(const or_options_t *options, int try_ip_pref) +{ + /* Servers always have and prefer IPv4. + * And if clients are checking against the firewall for reachability only, + * but there's no firewall, don't bother checking */ + return server_mode(options) || (!try_ip_pref && !firewall_is_fascist_or()); +} + +/* When iterating through the routerlist, can Dir address/port preference + * and reachability checks be skipped? + */ +static int +router_skip_dir_reachability(const or_options_t *options, int try_ip_pref) +{ + /* Servers always have and prefer IPv4. + * And if clients are checking against the firewall for reachability only, + * but there's no firewall, don't bother checking */ + return server_mode(options) || (!try_ip_pref && !firewall_is_fascist_dir()); +} + /** Pick a random running valid directory server/mirror from our * routerlist. Arguments are as for router_pick_directory_server(), except: * @@ -1487,11 +1669,12 @@ router_pick_directory_server_impl(dirinfo_type_t type, int flags, const int no_microdesc_fetching = (flags & PDS_NO_EXISTING_MICRODESC_FETCH); const int for_guard = (flags & PDS_FOR_GUARD); int try_excluding = 1, n_excluded = 0, n_busy = 0; + int try_ip_pref = 1, n_not_preferred = 0; if (!consensus) return NULL; - retry_without_exclude: + retry_search: direct = smartlist_new(); tunnel = smartlist_new(); @@ -1500,11 +1683,13 @@ router_pick_directory_server_impl(dirinfo_type_t type, int flags, overloaded_direct = smartlist_new(); overloaded_tunnel = smartlist_new(); + const int skip_or = router_skip_or_reachability(options, try_ip_pref); + const int skip_dir = router_skip_dir_reachability(options, try_ip_pref); + /* Find all the running dirservers we know about. */ SMARTLIST_FOREACH_BEGIN(nodelist_get_list(), const node_t *, node) { int is_trusted, is_trusted_extrainfo; int is_overloaded; - tor_addr_t addr; const routerstatus_t *status = node->rs; const country_t country = node->country; if (!status) @@ -1535,36 +1720,34 @@ router_pick_directory_server_impl(dirinfo_type_t type, int flags, continue; } - /* XXXX IP6 proposal 118 */ - tor_addr_from_ipv4h(&addr, status->addr); - - if (no_serverdesc_fetching && ( - connection_get_by_type_addr_port_purpose( - CONN_TYPE_DIR, &addr, status->dir_port, DIR_PURPOSE_FETCH_SERVERDESC) - || connection_get_by_type_addr_port_purpose( - CONN_TYPE_DIR, &addr, status->dir_port, DIR_PURPOSE_FETCH_EXTRAINFO) - )) { - ++n_busy; - continue; - } - - if (no_microdesc_fetching && connection_get_by_type_addr_port_purpose( - CONN_TYPE_DIR, &addr, status->dir_port, DIR_PURPOSE_FETCH_MICRODESC) - ) { + if (router_is_already_dir_fetching_rs(status, + no_serverdesc_fetching, + no_microdesc_fetching)) { ++n_busy; continue; } is_overloaded = status->last_dir_503_at + DIR_503_TIMEOUT > now; - if ((!fascistfirewall || - fascist_firewall_allows_address_or(&addr, status->or_port))) + /* Clients use IPv6 addresses if the server has one and the client + * prefers IPv6. + * Add the router if its preferred address and port are reachable. + * If we don't get any routers, we'll try again with the non-preferred + * address for each router (if any). (To ensure correct load-balancing + * we try routers that only have one address both times.) + */ + if (!fascistfirewall || skip_or || + fascist_firewall_allows_rs(status, FIREWALL_OR_CONNECTION, + try_ip_pref)) smartlist_add(is_trusted ? trusted_tunnel : is_overloaded ? overloaded_tunnel : tunnel, (void*)node); - else if (!fascistfirewall || - fascist_firewall_allows_address_dir(&addr, status->dir_port)) + else if (skip_dir || + fascist_firewall_allows_rs(status, FIREWALL_DIR_CONNECTION, + try_ip_pref)) smartlist_add(is_trusted ? trusted_direct : is_overloaded ? overloaded_direct : direct, (void*)node); + else if (!tor_addr_is_null(&status->ipv6_addr)) + ++n_not_preferred; } SMARTLIST_FOREACH_END(node); if (smartlist_len(tunnel)) { @@ -1593,19 +1776,15 @@ router_pick_directory_server_impl(dirinfo_type_t type, int flags, smartlist_free(overloaded_direct); smartlist_free(overloaded_tunnel); - if (result == NULL && try_excluding && !options->StrictNodes && n_excluded - && !n_busy) { - /* If we got no result, and we are excluding nodes, and StrictNodes is - * not set, try again without excluding nodes. */ - try_excluding = 0; - n_excluded = 0; - n_busy = 0; - goto retry_without_exclude; - } + RETRY_ALTERNATE_IP_VERSION(retry_search); + + RETRY_WITHOUT_EXCLUDE(retry_search); if (n_busy_out) *n_busy_out = n_busy; + router_picked_poor_directory_log(result ? result->rs : NULL); + return result ? result->rs : NULL; } @@ -1656,22 +1835,25 @@ router_pick_trusteddirserver_impl(const smartlist_t *sourcelist, smartlist_t *pick_from; int n_busy = 0; int try_excluding = 1, n_excluded = 0; + int try_ip_pref = 1, n_not_preferred = 0; if (!sourcelist) return NULL; - retry_without_exclude: + retry_search: direct = smartlist_new(); tunnel = smartlist_new(); overloaded_direct = smartlist_new(); overloaded_tunnel = smartlist_new(); + const int skip_or = router_skip_or_reachability(options, try_ip_pref); + const int skip_dir = router_skip_dir_reachability(options, try_ip_pref); + SMARTLIST_FOREACH_BEGIN(sourcelist, const dir_server_t *, d) { int is_overloaded = d->fake_status.last_dir_503_at + DIR_503_TIMEOUT > now; - tor_addr_t addr; if (!d->is_running) continue; if ((type & d->type) == 0) continue; @@ -1687,35 +1869,29 @@ router_pick_trusteddirserver_impl(const smartlist_t *sourcelist, continue; } - /* XXXX IP6 proposal 118 */ - tor_addr_from_ipv4h(&addr, d->addr); - - if (no_serverdesc_fetching) { - if (connection_get_by_type_addr_port_purpose( - CONN_TYPE_DIR, &addr, d->dir_port, DIR_PURPOSE_FETCH_SERVERDESC) - || connection_get_by_type_addr_port_purpose( - CONN_TYPE_DIR, &addr, d->dir_port, DIR_PURPOSE_FETCH_EXTRAINFO)) { - //log_debug(LD_DIR, "We have an existing connection to fetch " - // "descriptor from %s; delaying",d->description); - ++n_busy; - continue; - } - } - if (no_microdesc_fetching) { - if (connection_get_by_type_addr_port_purpose( - CONN_TYPE_DIR, &addr, d->dir_port, DIR_PURPOSE_FETCH_MICRODESC)) { - ++n_busy; - continue; - } + if (router_is_already_dir_fetching_ds(d, no_serverdesc_fetching, + no_microdesc_fetching)) { + ++n_busy; + continue; } - if (d->or_port && - (!fascistfirewall || - fascist_firewall_allows_address_or(&addr, d->or_port))) + /* Clients use IPv6 addresses if the server has one and the client + * prefers IPv6. + * Add the router if its preferred address and port are reachable. + * If we don't get any routers, we'll try again with the non-preferred + * address for each router (if any). (To ensure correct load-balancing + * we try routers that only have one address both times.) + */ + if (!fascistfirewall || skip_or || + fascist_firewall_allows_dir_server(d, FIREWALL_OR_CONNECTION, + try_ip_pref)) smartlist_add(is_overloaded ? overloaded_tunnel : tunnel, (void*)d); - else if (!fascistfirewall || - fascist_firewall_allows_address_dir(&addr, d->dir_port)) + else if (skip_dir || + fascist_firewall_allows_dir_server(d, FIREWALL_DIR_CONNECTION, + try_ip_pref)) smartlist_add(is_overloaded ? overloaded_direct : direct, (void*)d); + else if (!tor_addr_is_null(&d->ipv6_addr)) + ++n_not_preferred; } SMARTLIST_FOREACH_END(d); @@ -1742,19 +1918,14 @@ router_pick_trusteddirserver_impl(const smartlist_t *sourcelist, smartlist_free(overloaded_direct); smartlist_free(overloaded_tunnel); - if (result == NULL && try_excluding && !options->StrictNodes && n_excluded - && !n_busy) { - /* If we got no result, and we are excluding nodes, and StrictNodes is - * not set, try again without excluding nodes. */ - try_excluding = 0; - n_excluded = 0; - n_busy = 0; - goto retry_without_exclude; - } + RETRY_ALTERNATE_IP_VERSION(retry_search); + + RETRY_WITHOUT_EXCLUDE(retry_search); + + router_picked_poor_directory_log(result); if (n_busy_out) *n_busy_out = n_busy; - return result; } @@ -1824,8 +1995,12 @@ routerlist_add_node_and_family(smartlist_t *sl, const routerinfo_t *router) void router_add_running_nodes_to_smartlist(smartlist_t *sl, int allow_invalid, int need_uptime, int need_capacity, - int need_guard, int need_desc) -{ /* XXXX MOVE */ + int need_guard, int need_desc, + int pref_addr) +{ + const int check_reach = !router_skip_or_reachability(get_options(), + pref_addr); + /* XXXX MOVE */ SMARTLIST_FOREACH_BEGIN(nodelist_get_list(), const node_t *, node) { if (!node->is_running || (!node->is_valid && !allow_invalid)) @@ -1836,6 +2011,11 @@ router_add_running_nodes_to_smartlist(smartlist_t *sl, int allow_invalid, continue; if (node_is_unreliable(node, need_uptime, need_capacity, need_guard)) continue; + /* Choose a node with an OR address that matches the firewall rules */ + if (check_reach && !fascist_firewall_allows_node(node, + FIREWALL_OR_CONNECTION, + pref_addr)) + continue; smartlist_add(sl, (void *)node); } SMARTLIST_FOREACH_END(node); @@ -2297,6 +2477,10 @@ node_sl_choose_by_bandwidth(const smartlist_t *sl, * If <b>CRN_NEED_DESC</b> is set in flags, we only consider nodes that * have a routerinfo or microdescriptor -- that is, enough info to be * used to build a circuit. + * If <b>CRN_PREF_ADDR</b> is set in flags, we only consider nodes that + * have an address that is preferred by the ClientPreferIPv6ORPort setting + * (regardless of this flag, we exclude nodes that aren't allowed by the + * firewall, including ClientUseIPv4 0 and fascist_firewall_use_ipv6() == 0). */ const node_t * router_choose_random_node(smartlist_t *excludedsmartlist, @@ -2309,6 +2493,7 @@ router_choose_random_node(smartlist_t *excludedsmartlist, const int allow_invalid = (flags & CRN_ALLOW_INVALID) != 0; const int weight_for_exit = (flags & CRN_WEIGHT_AS_EXIT) != 0; const int need_desc = (flags & CRN_NEED_DESC) != 0; + const int pref_addr = (flags & CRN_PREF_ADDR) != 0; smartlist_t *sl=smartlist_new(), *excludednodes=smartlist_new(); @@ -2334,7 +2519,7 @@ router_choose_random_node(smartlist_t *excludedsmartlist, router_add_running_nodes_to_smartlist(sl, allow_invalid, need_uptime, need_capacity, - need_guard, need_desc); + need_guard, need_desc, pref_addr); log_debug(LD_CIRC, "We found %d running nodes.", smartlist_len(sl)); @@ -2363,7 +2548,7 @@ router_choose_random_node(smartlist_t *excludedsmartlist, choice = node_sl_choose_by_bandwidth(sl, rule); smartlist_free(sl); - if (!choice && (need_uptime || need_capacity || need_guard)) { + if (!choice && (need_uptime || need_capacity || need_guard || pref_addr)) { /* try once more -- recurse but with fewer restrictions. */ log_info(LD_CIRC, "We couldn't find any live%s%s%s routers; falling back " @@ -2371,7 +2556,8 @@ router_choose_random_node(smartlist_t *excludedsmartlist, need_capacity?", fast":"", need_uptime?", stable":"", need_guard?", guard":""); - flags &= ~ (CRN_NEED_UPTIME|CRN_NEED_CAPACITY|CRN_NEED_GUARD); + flags &= ~ (CRN_NEED_UPTIME|CRN_NEED_CAPACITY|CRN_NEED_GUARD| + CRN_PREF_ADDR); choice = router_choose_random_node( excludedsmartlist, excludedset, flags); } @@ -4266,7 +4452,7 @@ clear_dir_servers(void) /** For every current directory connection whose purpose is <b>purpose</b>, * and where the resource being downloaded begins with <b>prefix</b>, split * rest of the resource into base16 fingerprints (or base64 fingerprints if - * purpose==DIR_PURPPOSE_FETCH_MICRODESC), decode them, and set the + * purpose==DIR_PURPOSE_FETCH_MICRODESC), decode them, and set the * corresponding elements of <b>result</b> to a nonzero value. */ static void @@ -5209,77 +5395,3 @@ refresh_all_country_info(void) nodelist_refresh_countries(); } - -/** Determine the routers that are responsible for <b>id</b> (binary) and - * add pointers to those routers' routerstatus_t to <b>responsible_dirs</b>. - * Return -1 if we're returning an empty smartlist, else return 0. - */ -int -hid_serv_get_responsible_directories(smartlist_t *responsible_dirs, - const char *id) -{ - int start, found, n_added = 0, i; - networkstatus_t *c = networkstatus_get_latest_consensus(); - if (!c || !smartlist_len(c->routerstatus_list)) { - log_warn(LD_REND, "We don't have a consensus, so we can't perform v2 " - "rendezvous operations."); - return -1; - } - tor_assert(id); - start = networkstatus_vote_find_entry_idx(c, id, &found); - if (start == smartlist_len(c->routerstatus_list)) start = 0; - i = start; - do { - routerstatus_t *r = smartlist_get(c->routerstatus_list, i); - if (r->is_hs_dir) { - smartlist_add(responsible_dirs, r); - if (++n_added == REND_NUMBER_OF_CONSECUTIVE_REPLICAS) - return 0; - } - if (++i == smartlist_len(c->routerstatus_list)) - i = 0; - } while (i != start); - - /* Even though we don't have the desired number of hidden service - * directories, be happy if we got any. */ - return smartlist_len(responsible_dirs) ? 0 : -1; -} - -/** Return true if this node is currently acting as hidden service - * directory, false otherwise. */ -int -hid_serv_acting_as_directory(void) -{ - const routerinfo_t *me = router_get_my_routerinfo(); - if (!me) - return 0; - return 1; -} - -/** Return true if this node is responsible for storing the descriptor ID - * in <b>query</b> and false otherwise. */ -MOCK_IMPL(int, hid_serv_responsible_for_desc_id, - (const char *query)) -{ - const routerinfo_t *me; - routerstatus_t *last_rs; - const char *my_id, *last_id; - int result; - smartlist_t *responsible; - if (!hid_serv_acting_as_directory()) - return 0; - if (!(me = router_get_my_routerinfo())) - return 0; /* This is redundant, but let's be paranoid. */ - my_id = me->cache_info.identity_digest; - responsible = smartlist_new(); - if (hid_serv_get_responsible_directories(responsible, query) < 0) { - smartlist_free(responsible); - return 0; - } - last_rs = smartlist_get(responsible, smartlist_len(responsible)-1); - last_id = last_rs->identity_digest; - result = rend_id_is_in_interval(my_id, query, last_id); - smartlist_free(responsible); - return result; -} - diff --git a/src/or/routerlist.h b/src/or/routerlist.h index dd88aeb179..bc48c2087c 100644 --- a/src/or/routerlist.h +++ b/src/or/routerlist.h @@ -1,6 +1,6 @@ /* Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** @@ -61,7 +61,8 @@ void router_reset_status_download_failures(void); int routers_have_same_or_addrs(const routerinfo_t *r1, const routerinfo_t *r2); void router_add_running_nodes_to_smartlist(smartlist_t *sl, int allow_invalid, int need_uptime, int need_capacity, - int need_guard, int need_desc); + int need_guard, int need_desc, + int pref_addr); const routerinfo_t *routerlist_find_my_routerinfo(void); uint32_t router_get_advertised_bandwidth(const routerinfo_t *router); @@ -201,11 +202,6 @@ void routers_sort_by_identity(smartlist_t *routers); void refresh_all_country_info(void); -int hid_serv_get_responsible_directories(smartlist_t *responsible_dirs, - const char *id); -int hid_serv_acting_as_directory(void); -MOCK_DECL(int, hid_serv_responsible_for_desc_id, (const char *id)); - void list_pending_microdesc_downloads(digest256map_t *result); void launch_descriptor_downloads(int purpose, smartlist_t *downloadable, @@ -245,6 +241,8 @@ MOCK_DECL(STATIC was_router_added_t, extrainfo_insert, MOCK_DECL(STATIC void, initiate_descriptor_downloads, (const routerstatus_t *source, int purpose, smartlist_t *digests, int lo, int hi, int pds_flags)); +STATIC int router_is_already_dir_fetching(const tor_addr_port_t *ap, + int serverdesc, int microdesc); #endif diff --git a/src/or/routerparse.c b/src/or/routerparse.c index fafba96e95..c4325e3e1e 100644 --- a/src/or/routerparse.c +++ b/src/or/routerparse.c @@ -1,7 +1,7 @@ /* Copyright (c) 2001 Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** @@ -538,7 +538,7 @@ static int router_get_hash_impl(const char *s, size_t s_len, char *digest, char end_char, digest_algorithm_t alg); static int router_get_hashes_impl(const char *s, size_t s_len, - digests_t *digests, + common_digests_t *digests, const char *start_str, const char *end_str, char end_char); static void token_clear(directory_token_t *tok); @@ -638,7 +638,7 @@ router_get_router_hash(const char *s, size_t s_len, char *digest) /** Set <b>digests</b> to all the digests of the consensus document in * <b>s</b> */ int -router_get_networkstatus_v3_hashes(const char *s, digests_t *digests) +router_get_networkstatus_v3_hashes(const char *s, common_digests_t *digests) { return router_get_hashes_impl(s,strlen(s),digests, "network-status-version", @@ -2847,7 +2847,7 @@ networkstatus_parse_vote_from_string(const char *s, const char **eos_out, smartlist_t *rs_tokens = NULL, *footer_tokens = NULL; networkstatus_voter_info_t *voter = NULL; networkstatus_t *ns = NULL; - digests_t ns_digests; + common_digests_t ns_digests; const char *cert, *end_of_header, *end_of_footer, *s_dup = s; directory_token_t *tok; int ok; @@ -3443,15 +3443,16 @@ networkstatus_parse_vote_from_string(const char *s, const char **eos_out, return ns; } -/** Return the digests_t that holds the digests of the +/** Return the common_digests_t that holds the digests of the * <b>flavor_name</b>-flavored networkstatus according to the detached - * signatures document <b>sigs</b>, allocating a new digests_t as neeeded. */ -static digests_t * + * signatures document <b>sigs</b>, allocating a new common_digests_t as + * neeeded. */ +static common_digests_t * detached_get_digests(ns_detached_signatures_t *sigs, const char *flavor_name) { - digests_t *d = strmap_get(sigs->digests, flavor_name); + common_digests_t *d = strmap_get(sigs->digests, flavor_name); if (!d) { - d = tor_malloc_zero(sizeof(digests_t)); + d = tor_malloc_zero(sizeof(common_digests_t)); strmap_set(sigs->digests, flavor_name, d); } return d; @@ -3459,7 +3460,7 @@ detached_get_digests(ns_detached_signatures_t *sigs, const char *flavor_name) /** Return the list of signatures of the <b>flavor_name</b>-flavored * networkstatus according to the detached signatures document <b>sigs</b>, - * allocating a new digests_t as neeeded. */ + * allocating a new common_digests_t as neeeded. */ static smartlist_t * detached_get_signatures(ns_detached_signatures_t *sigs, const char *flavor_name) @@ -3481,7 +3482,7 @@ networkstatus_parse_detached_signatures(const char *s, const char *eos) * networkstatus_parse_vote_from_string(). */ directory_token_t *tok; memarea_t *area = NULL; - digests_t *digests; + common_digests_t *digests; smartlist_t *tokens = smartlist_new(); ns_detached_signatures_t *sigs = @@ -3679,7 +3680,7 @@ networkstatus_parse_detached_signatures(const char *s, const char *eos) * * Returns NULL on policy errors. * - * Set *<b>malformed_list>/b> to true if the entire policy list should be + * Set *<b>malformed_list</b> to true if the entire policy list should be * discarded. Otherwise, set it to false, and only this item should be ignored * on error - the rest of the policy list can continue to be processed and * used. @@ -4444,7 +4445,7 @@ router_get_hash_impl(const char *s, size_t s_len, char *digest, /** As router_get_hash_impl, but compute all hashes. */ static int -router_get_hashes_impl(const char *s, size_t s_len, digests_t *digests, +router_get_hashes_impl(const char *s, size_t s_len, common_digests_t *digests, const char *start_str, const char *end_str, char end_c) { @@ -4453,7 +4454,7 @@ router_get_hashes_impl(const char *s, size_t s_len, digests_t *digests, &start,&end)<0) return -1; - if (crypto_digest_all(digests, start, end-start)) { + if (crypto_common_digests(digests, start, end-start)) { log_warn(LD_BUG,"couldn't compute digests"); return -1; } diff --git a/src/or/routerparse.h b/src/or/routerparse.h index 99fd52866c..c46eb1c0ae 100644 --- a/src/or/routerparse.h +++ b/src/or/routerparse.h @@ -1,7 +1,7 @@ /* Copyright (c) 2001 Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** @@ -14,7 +14,8 @@ int router_get_router_hash(const char *s, size_t s_len, char *digest); int router_get_dir_hash(const char *s, char *digest); -int router_get_networkstatus_v3_hashes(const char *s, digests_t *digests); +int router_get_networkstatus_v3_hashes(const char *s, + common_digests_t *digests); int router_get_extrainfo_hash(const char *s, size_t s_len, char *digest); #define DIROBJ_MAX_SIG_LEN 256 char *router_get_dirobj_signature(const char *digest, diff --git a/src/or/routerset.c b/src/or/routerset.c index debe9ec6e1..f260914f4b 100644 --- a/src/or/routerset.c +++ b/src/or/routerset.c @@ -1,9 +1,16 @@ /* Copyright (c) 2001 Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ +/** + * \file routerset.c + * + * \brief Functions and structures to handle set-type selection of routers + * by name, ID, address, etc. + */ + #define ROUTERSET_PRIVATE #include "or.h" diff --git a/src/or/routerset.h b/src/or/routerset.h index aca7c6e74e..c2f7205c3e 100644 --- a/src/or/routerset.h +++ b/src/or/routerset.h @@ -1,6 +1,6 @@ /* Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** diff --git a/src/or/scheduler.c b/src/or/scheduler.c index 931bb6b744..8e4810b199 100644 --- a/src/or/scheduler.c +++ b/src/or/scheduler.c @@ -1,4 +1,4 @@ -/* * Copyright (c) 2013-2015, The Tor Project, Inc. */ +/* * Copyright (c) 2013-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** diff --git a/src/or/scheduler.h b/src/or/scheduler.h index 27dd2d8388..94a44a0aa3 100644 --- a/src/or/scheduler.h +++ b/src/or/scheduler.h @@ -1,4 +1,4 @@ -/* * Copyright (c) 2013-2015, The Tor Project, Inc. */ +/* * Copyright (c) 2013-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** diff --git a/src/or/statefile.c b/src/or/statefile.c index 7fe8dc5077..9594d9cec3 100644 --- a/src/or/statefile.c +++ b/src/or/statefile.c @@ -1,9 +1,16 @@ /* Copyright (c) 2001 Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ +/** + * \file statefile.c + * + * \brief Handles parsing and encoding the persistent 'state' file that carries + * miscellaneous persistent state between Tor invocations. + */ + #define STATEFILE_PRIVATE #include "or.h" #include "circuitstats.h" diff --git a/src/or/statefile.h b/src/or/statefile.h index 8c790ea206..b13743481d 100644 --- a/src/or/statefile.h +++ b/src/or/statefile.h @@ -1,7 +1,7 @@ /* Copyright (c) 2001 Matej Pfajfar. * Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #ifndef TOR_STATEFILE_H diff --git a/src/or/status.c b/src/or/status.c index 69d10721d2..749cee4edf 100644 --- a/src/or/status.c +++ b/src/or/status.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2010-2015, The Tor Project, Inc. */ +/* Copyright (c) 2010-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** diff --git a/src/or/status.h b/src/or/status.h index 3dd8206e0f..b97e835037 100644 --- a/src/or/status.h +++ b/src/or/status.h @@ -1,4 +1,4 @@ -/* Copyright (c) 2010-2015, The Tor Project, Inc. */ +/* Copyright (c) 2010-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #ifndef TOR_STATUS_H diff --git a/src/or/tor_main.c b/src/or/tor_main.c index 65bb020c2c..ac32eef559 100644 --- a/src/or/tor_main.c +++ b/src/or/tor_main.c @@ -1,6 +1,6 @@ /* Copyright 2001-2004 Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** String describing which Tor Git repository version the source was diff --git a/src/or/torcert.c b/src/or/torcert.c index ef5b4c0c3b..de7d28d740 100644 --- a/src/or/torcert.c +++ b/src/or/torcert.c @@ -1,6 +1,13 @@ -/* Copyright (c) 2014, The Tor Project, Inc. */ +/* Copyright (c) 2014-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ +/** + * \file torcert.c + * + * \brief Implementation for ed25519-signed certificates as used in the Tor + * protocol. + */ + #include "crypto.h" #include "torcert.h" #include "ed25519_cert.h" diff --git a/src/or/torcert.h b/src/or/torcert.h index b67dc525a2..9c819c0abb 100644 --- a/src/or/torcert.h +++ b/src/or/torcert.h @@ -1,4 +1,4 @@ -/* Copyright (c) 2014, The Tor Project, Inc. */ +/* Copyright (c) 2014-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #ifndef TORCERT_H_INCLUDED diff --git a/src/or/transports.c b/src/or/transports.c index 5a3af85be8..1b8b1e678c 100644 --- a/src/or/transports.c +++ b/src/or/transports.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2011-2015, The Tor Project, Inc. */ +/* Copyright (c) 2011-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** diff --git a/src/or/transports.h b/src/or/transports.h index 7c69941496..7de90dcbec 100644 --- a/src/or/transports.h +++ b/src/or/transports.h @@ -1,6 +1,6 @@ /* Copyright (c) 2003-2004, Roger Dingledine * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** diff --git a/src/test/bench.c b/src/test/bench.c index 1ef54042b2..5aefda5ff2 100644 --- a/src/test/bench.c +++ b/src/test/bench.c @@ -1,6 +1,6 @@ /* Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /* Ordinarily defined in tor_main.c; this bit is just here to provide one diff --git a/src/test/fakechans.h b/src/test/fakechans.h index 8fb8f420a8..fa0e37dbe6 100644 --- a/src/test/fakechans.h +++ b/src/test/fakechans.h @@ -1,4 +1,4 @@ - /* Copyright (c) 2014-2015, The Tor Project, Inc. */ + /* Copyright (c) 2014-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #ifndef TOR_FAKECHANS_H diff --git a/src/test/include.am b/src/test/include.am index 786fb77dd0..7d80fdf152 100644 --- a/src/test/include.am +++ b/src/test/include.am @@ -151,9 +151,12 @@ src_test_test_switch_id_LDADD = \ src_test_test_LDFLAGS = @TOR_LDFLAGS_zlib@ @TOR_LDFLAGS_openssl@ \ @TOR_LDFLAGS_libevent@ -src_test_test_LDADD = src/or/libtor-testing.a src/common/libor-testing.a \ - src/common/libor-crypto-testing.a $(LIBKECCAK_TINY) $(LIBDONNA) \ - src/common/libor.a src/common/libor-event-testing.a \ +src_test_test_LDADD = src/or/libtor-testing.a \ + src/common/libor-crypto-testing.a \ + $(LIBKECCAK_TINY) \ + $(LIBDONNA) \ + src/common/libor-testing.a \ + src/common/libor-event-testing.a \ src/trunnel/libor-trunnel-testing.a \ @TOR_ZLIB_LIBS@ @TOR_LIB_MATH@ @TOR_LIBEVENT_LIBS@ \ @TOR_OPENSSL_LIBS@ @TOR_LIB_WS32@ @TOR_LIB_GDI@ @CURVE25519_LIBS@ \ diff --git a/src/test/log_test_helpers.c b/src/test/log_test_helpers.c index bcf73a8437..3bb36ac36c 100644 --- a/src/test/log_test_helpers.c +++ b/src/test/log_test_helpers.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2015, The Tor Project, Inc. */ +/* Copyright (c) 2015-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #define LOG_PRIVATE #include "torlog.h" diff --git a/src/test/log_test_helpers.h b/src/test/log_test_helpers.h index 298237dddb..1966f170fb 100644 --- a/src/test/log_test_helpers.h +++ b/src/test/log_test_helpers.h @@ -1,4 +1,4 @@ -/* Copyright (c) 2014-2015, The Tor Project, Inc. */ +/* Copyright (c) 2014-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #include "or.h" @@ -23,6 +23,7 @@ void mock_clean_saved_logs(void); const smartlist_t *mock_saved_logs(void); int setup_capture_of_logs(int new_level); void teardown_capture_of_logs(int prev); + int mock_saved_log_has_message(const char *msg); int mock_saved_log_has_severity(int severity); int mock_saved_log_has_entry(void); diff --git a/src/test/ntor_ref.py b/src/test/ntor_ref.py index 767da57a9c..df065853f3 100755 --- a/src/test/ntor_ref.py +++ b/src/test/ntor_ref.py @@ -322,7 +322,7 @@ def kdf_vectors(): """ import binascii def kdf_vec(inp): - k = kdf(inp, T_KEY, M_EXPAND, 100) + k = kdf_rfc5869(inp, T_KEY, M_EXPAND, 100) print(repr(inp), "\n\""+ binascii.b2a_hex(k)+ "\"") kdf_vec("") kdf_vec("Tor") diff --git a/src/test/rend_test_helpers.c b/src/test/rend_test_helpers.c index f16d67fa1a..377337bcb9 100644 --- a/src/test/rend_test_helpers.c +++ b/src/test/rend_test_helpers.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2014-2015, The Tor Project, Inc. */ +/* Copyright (c) 2014-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #include "or.h" diff --git a/src/test/rend_test_helpers.h b/src/test/rend_test_helpers.h index 1ef03747d7..180a4e8fde 100644 --- a/src/test/rend_test_helpers.h +++ b/src/test/rend_test_helpers.h @@ -1,4 +1,4 @@ -/* Copyright (c) 2014-2015, The Tor Project, Inc. */ +/* Copyright (c) 2014-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #include "or.h" diff --git a/src/test/test-child.c b/src/test/test-child.c index 2ce01ea9bb..e2552a499d 100644 --- a/src/test/test-child.c +++ b/src/test/test-child.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2011-2015, The Tor Project, Inc. */ +/* Copyright (c) 2011-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #include <stdio.h> diff --git a/src/test/test.c b/src/test/test.c index f12ae21ff0..ed167a3e67 100644 --- a/src/test/test.c +++ b/src/test/test.c @@ -1,6 +1,6 @@ /* Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** @@ -319,11 +319,7 @@ test_circuit_timeout(void *arg) int i, runs; double close_ms; (void)arg; - tor_libevent_cfg cfg; - memset(&cfg, 0, sizeof(cfg)); - - tor_libevent_initialize(&cfg); initialize_periodic_events(); circuit_build_times_init(&initial); diff --git a/src/test/test.h b/src/test/test.h index 86699c3d07..e618ce1224 100644 --- a/src/test/test.h +++ b/src/test/test.h @@ -1,6 +1,6 @@ /* Copyright (c) 2001-2003, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #ifndef TOR_TEST_H diff --git a/src/test/test_addr.c b/src/test/test_addr.c index 85130db4fe..337bddad6b 100644 --- a/src/test/test_addr.c +++ b/src/test/test_addr.c @@ -1,6 +1,6 @@ /* Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #define ADDRESSMAP_PRIVATE diff --git a/src/test/test_address.c b/src/test/test_address.c index 3b17b23571..3e5af56c52 100644 --- a/src/test/test_address.c +++ b/src/test/test_address.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2014-2015, The Tor Project, Inc. */ +/* Copyright (c) 2014-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #define ADDRESS_PRIVATE @@ -297,7 +297,9 @@ test_address_get_if_addrs_ifaddrs(void *arg) } done: - SMARTLIST_FOREACH(results, tor_addr_t *, t, tor_free(t)); + if (results) { + SMARTLIST_FOREACH(results, tor_addr_t *, t, tor_free(t)); + } smartlist_free(results); return; } diff --git a/src/test/test_bt_cl.c b/src/test/test_bt_cl.c index c43143ffe9..2f5e50fbf5 100644 --- a/src/test/test_bt_cl.c +++ b/src/test/test_bt_cl.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2012-2015, The Tor Project, Inc. */ +/* Copyright (c) 2012-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #include "orconfig.h" diff --git a/src/test/test_buffers.c b/src/test/test_buffers.c index 29ee408616..e5e56edf75 100644 --- a/src/test/test_buffers.c +++ b/src/test/test_buffers.c @@ -1,6 +1,6 @@ /* Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #define BUFFERS_PRIVATE diff --git a/src/test/test_cell_formats.c b/src/test/test_cell_formats.c index e86dc0934f..499a637959 100644 --- a/src/test/test_cell_formats.c +++ b/src/test/test_cell_formats.c @@ -1,6 +1,6 @@ /* Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #include "orconfig.h" diff --git a/src/test/test_cell_queue.c b/src/test/test_cell_queue.c index ed34df2ea2..93ac9854d8 100644 --- a/src/test/test_cell_queue.c +++ b/src/test/test_cell_queue.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2013-2015, The Tor Project, Inc. */ +/* Copyright (c) 2013-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #define CIRCUITLIST_PRIVATE diff --git a/src/test/test_channel.c b/src/test/test_channel.c index e11ac3f3cc..84eddea5b4 100644 --- a/src/test/test_channel.c +++ b/src/test/test_channel.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2013-2015, The Tor Project, Inc. */ +/* Copyright (c) 2013-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #define TOR_CHANNEL_INTERNAL_ diff --git a/src/test/test_channeltls.c b/src/test/test_channeltls.c index dff1dde87e..04ae9a6da7 100644 --- a/src/test/test_channeltls.c +++ b/src/test/test_channeltls.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2014-2015, The Tor Project, Inc. */ +/* Copyright (c) 2014-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #include <math.h> diff --git a/src/test/test_checkdir.c b/src/test/test_checkdir.c index d6ef353c87..fbb33f87f6 100644 --- a/src/test/test_checkdir.c +++ b/src/test/test_checkdir.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2014-2015, The Tor Project, Inc. */ +/* Copyright (c) 2014-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #include "orconfig.h" diff --git a/src/test/test_circuitlist.c b/src/test/test_circuitlist.c index 0760accfc1..1e640b5709 100644 --- a/src/test/test_circuitlist.c +++ b/src/test/test_circuitlist.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2013-2015, The Tor Project, Inc. */ +/* Copyright (c) 2013-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #define TOR_CHANNEL_INTERNAL_ diff --git a/src/test/test_circuitmux.c b/src/test/test_circuitmux.c index 6d93731eea..9e8fb54964 100644 --- a/src/test/test_circuitmux.c +++ b/src/test/test_circuitmux.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2013-2015, The Tor Project, Inc. */ +/* Copyright (c) 2013-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #define TOR_CHANNEL_INTERNAL_ @@ -36,11 +36,7 @@ test_cmux_destroy_cell_queue(void *arg) circuit_t *circ = NULL; cell_queue_t *cq = NULL; packed_cell_t *pc = NULL; - tor_libevent_cfg cfg; - memset(&cfg, 0, sizeof(cfg)); - - tor_libevent_initialize(&cfg); scheduler_init(); (void) arg; diff --git a/src/test/test_compat_libevent.c b/src/test/test_compat_libevent.c index f3fe113012..266ebbcf3b 100644 --- a/src/test/test_compat_libevent.c +++ b/src/test/test_compat_libevent.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2010-2015, The Tor Project, Inc. */ +/* Copyright (c) 2010-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #define COMPAT_LIBEVENT_PRIVATE diff --git a/src/test/test_config.c b/src/test/test_config.c index 85bedd62c9..b11848102e 100644 --- a/src/test/test_config.c +++ b/src/test/test_config.c @@ -1,6 +1,6 @@ /* Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #include "orconfig.h" @@ -3752,6 +3752,7 @@ test_config_parse_port_config__listenaddress(void *data) // Port lines for the same portname ret = parse_port_config(NULL, config_port1, config_listen_address, "DNS", 0, NULL, 0, 0); + tt_int_op(ret, OP_EQ, -1); // Test case when we have a listen address, no default port and allow @@ -3842,14 +3843,16 @@ test_config_parse_port_config__listenaddress(void *data) tt_int_op(ret, OP_EQ, 0); done: - tor_free(config_listen_address); - tor_free(config_listen_address2); - tor_free(config_listen_address3); - tor_free(config_port1); - tor_free(config_port2); - tor_free(config_port3); - tor_free(config_port4); - tor_free(config_port5); + config_free_lines(config_listen_address); + config_free_lines(config_listen_address2); + config_free_lines(config_listen_address3); + config_free_lines(config_port1); + /* 2 was linked from 1. */ + config_free_lines(config_port3); + config_free_lines(config_port4); + config_free_lines(config_port5); + if (slout) + SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf)); smartlist_free(slout); } @@ -3860,7 +3863,6 @@ test_config_parse_port_config__ports__no_ports_given(void *data) int ret; smartlist_t *slout = NULL; port_cfg_t *port_cfg = NULL; - config_line_t *config_port_invalid = NULL, *config_port_valid = NULL; slout = smartlist_new(); @@ -3896,6 +3898,7 @@ test_config_parse_port_config__ports__no_ports_given(void *data) tt_int_op(smartlist_len(slout), OP_EQ, 0); // Test with defaultport, with defaultaddress and out, adds a new port cfg + SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf)); smartlist_clear(slout); ret = parse_port_config(slout, NULL, NULL, "DNS", 0, "127.0.0.2", 42, 0); tt_int_op(ret, OP_EQ, 0); @@ -3906,6 +3909,7 @@ test_config_parse_port_config__ports__no_ports_given(void *data) // Test with defaultport, with defaultaddress and out, adds a new port cfg // for a unix address + SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf)); smartlist_clear(slout); ret = parse_port_config(slout, NULL, NULL, "DNS", 0, "/foo/bar/unixdomain", 42, CL_PORT_IS_UNIXSOCKET); @@ -3917,9 +3921,9 @@ test_config_parse_port_config__ports__no_ports_given(void *data) tt_str_op(port_cfg->unix_addr, OP_EQ, "/foo/bar/unixdomain"); done: + if (slout) + SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf)); smartlist_free(slout); - tor_free(config_port_invalid); - tor_free(config_port_valid); } static void @@ -3941,7 +3945,7 @@ test_config_parse_port_config__ports__ports_given(void *data) tt_int_op(ret, OP_EQ, -1); // Test error when encounters an empty unix domain specification - tor_free(config_port_invalid); + config_free_lines(config_port_invalid); config_port_invalid = NULL; config_port_invalid = mock_config_line("DNSPort", "unix:"); ret = parse_port_config(NULL, config_port_invalid, NULL, "DNS", 0, NULL, 0, 0); @@ -3955,6 +3959,7 @@ test_config_parse_port_config__ports__ports_given(void *data) tt_int_op(ret, OP_EQ, -1); // Test valid unix domain + SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf)); smartlist_clear(slout); ret = parse_port_config(slout, config_port_valid, NULL, "DNS", CONN_TYPE_AP_LISTENER, NULL, 0, 0); @@ -3971,7 +3976,7 @@ test_config_parse_port_config__ports__ports_given(void *data) // Test failure if we have no ipv4 and no ipv6 (for unix domain sockets, // this makes no sense - it should be fixed) - tor_free(config_port_invalid); + config_free_lines(config_port_invalid); config_port_invalid = NULL; config_port_invalid = mock_config_line("DNSPort", "unix:/tmp/foo/bar NoIPv4Traffic"); ret = parse_port_config(NULL, config_port_invalid, NULL, "DNS", @@ -3981,7 +3986,8 @@ test_config_parse_port_config__ports__ports_given(void *data) // Test success with no ipv4 but take ipv6 (for unix domain sockets, this // makes no sense - it should be fixed) - tor_free(config_port_valid); + config_free_lines(config_port_valid); config_port_valid = NULL; + SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf)); smartlist_clear(slout); config_port_valid = mock_config_line("DNSPort", "unix:/tmp/foo/bar " "NoIPv4Traffic IPv6Traffic"); @@ -4000,7 +4006,8 @@ test_config_parse_port_config__ports__ports_given(void *data) // Test success with both ipv4 and ipv6 (for unix domain sockets, // this makes no sense - it should be fixed) - tor_free(config_port_valid); + config_free_lines(config_port_valid); config_port_valid = NULL; + SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf)); smartlist_clear(slout); config_port_valid = mock_config_line("DNSPort", "unix:/tmp/foo/bar " "IPv4Traffic IPv6Traffic"); @@ -4018,28 +4025,29 @@ test_config_parse_port_config__ports__ports_given(void *data) #endif // Test failure if we specify world writable for an IP Port - tor_free(config_port_invalid); + config_free_lines(config_port_invalid); config_port_invalid = NULL; config_port_invalid = mock_config_line("DNSPort", "42 WorldWritable"); ret = parse_port_config(NULL, config_port_invalid, NULL, "DNS", 0, "127.0.0.3", 0, 0); tt_int_op(ret, OP_EQ, -1); // Test failure if we specify group writable for an IP Port - tor_free(config_port_invalid); + config_free_lines(config_port_invalid); config_port_invalid = NULL; config_port_invalid = mock_config_line("DNSPort", "42 GroupWritable"); ret = parse_port_config(NULL, config_port_invalid, NULL, "DNS", 0, "127.0.0.3", 0, 0); tt_int_op(ret, OP_EQ, -1); // Test success with only a port (this will fail without a default address) - tor_free(config_port_valid); + config_free_lines(config_port_valid); config_port_valid = NULL; config_port_valid = mock_config_line("DNSPort", "42"); ret = parse_port_config(NULL, config_port_valid, NULL, "DNS", 0, "127.0.0.3", 0, 0); tt_int_op(ret, OP_EQ, 0); // Test success with only a port and isolate destination port - tor_free(config_port_valid); + config_free_lines(config_port_valid); config_port_valid = NULL; + SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf)); smartlist_clear(slout); config_port_valid = mock_config_line("DNSPort", "42 IsolateDestPort"); ret = parse_port_config(slout, config_port_valid, NULL, "DNS", 0, @@ -4051,7 +4059,8 @@ test_config_parse_port_config__ports__ports_given(void *data) ISO_DEFAULT | ISO_DESTPORT); // Test success with a negative isolate destination port, and plural - tor_free(config_port_valid); + config_free_lines(config_port_valid); config_port_valid = NULL; + SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf)); smartlist_clear(slout); config_port_valid = mock_config_line("DNSPort", "42 NoIsolateDestPorts"); ret = parse_port_config(slout, config_port_valid, NULL, "DNS", 0, @@ -4063,7 +4072,8 @@ test_config_parse_port_config__ports__ports_given(void *data) ISO_DEFAULT & ~ISO_DESTPORT); // Test success with isolate destination address - tor_free(config_port_valid); + config_free_lines(config_port_valid); config_port_valid = NULL; + SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf)); smartlist_clear(slout); config_port_valid = mock_config_line("DNSPort", "42 IsolateDestAddr"); ret = parse_port_config(slout, config_port_valid, NULL, "DNS", 0, @@ -4075,7 +4085,8 @@ test_config_parse_port_config__ports__ports_given(void *data) ISO_DEFAULT | ISO_DESTADDR); // Test success with isolate socks AUTH - tor_free(config_port_valid); + config_free_lines(config_port_valid); config_port_valid = NULL; + SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf)); smartlist_clear(slout); config_port_valid = mock_config_line("DNSPort", "42 IsolateSOCKSAuth"); ret = parse_port_config(slout, config_port_valid, NULL, "DNS", 0, @@ -4087,7 +4098,8 @@ test_config_parse_port_config__ports__ports_given(void *data) ISO_DEFAULT | ISO_SOCKSAUTH); // Test success with isolate client protocol - tor_free(config_port_valid); + config_free_lines(config_port_valid); config_port_valid = NULL; + SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf)); smartlist_clear(slout); config_port_valid = mock_config_line("DNSPort", "42 IsolateClientProtocol"); ret = parse_port_config(slout, config_port_valid, NULL, "DNS", 0, @@ -4099,7 +4111,8 @@ test_config_parse_port_config__ports__ports_given(void *data) ISO_DEFAULT | ISO_CLIENTPROTO); // Test success with isolate client address - tor_free(config_port_valid); + config_free_lines(config_port_valid); config_port_valid = NULL; + SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf)); smartlist_clear(slout); config_port_valid = mock_config_line("DNSPort", "42 IsolateClientAddr"); ret = parse_port_config(slout, config_port_valid, NULL, "DNS", 0, @@ -4111,14 +4124,15 @@ test_config_parse_port_config__ports__ports_given(void *data) ISO_DEFAULT | ISO_CLIENTADDR); // Test success with ignored unknown options - tor_free(config_port_valid); + config_free_lines(config_port_valid); config_port_valid = NULL; config_port_valid = mock_config_line("DNSPort", "42 ThisOptionDoesntExist"); ret = parse_port_config(NULL, config_port_valid, NULL, "DNS", 0, "127.0.0.3", 0, 0); tt_int_op(ret, OP_EQ, 0); // Test success with no isolate socks AUTH - tor_free(config_port_valid); + config_free_lines(config_port_valid); config_port_valid = NULL; + SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf)); smartlist_clear(slout); config_port_valid = mock_config_line("DNSPort", "42 NoIsolateSOCKSAuth"); ret = parse_port_config(slout, config_port_valid, NULL, "DNS", 0, @@ -4129,7 +4143,8 @@ test_config_parse_port_config__ports__ports_given(void *data) tt_int_op(port_cfg->entry_cfg.socks_prefer_no_auth, OP_EQ, 1); // Test success with prefer ipv6 - tor_free(config_port_valid); + config_free_lines(config_port_valid); config_port_valid = NULL; + SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf)); smartlist_clear(slout); config_port_valid = mock_config_line("DNSPort", "42 IPv6Traffic PreferIPv6"); ret = parse_port_config(slout, config_port_valid, NULL, "DNS", @@ -4141,7 +4156,8 @@ test_config_parse_port_config__ports__ports_given(void *data) tt_int_op(port_cfg->entry_cfg.prefer_ipv6, OP_EQ, 1); // Test success with cache ipv4 DNS - tor_free(config_port_valid); + config_free_lines(config_port_valid); config_port_valid = NULL; + SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf)); smartlist_clear(slout); config_port_valid = mock_config_line("DNSPort", "42 CacheIPv4DNS"); ret = parse_port_config(slout, config_port_valid, NULL, "DNS", 0, @@ -4153,7 +4169,8 @@ test_config_parse_port_config__ports__ports_given(void *data) tt_int_op(port_cfg->entry_cfg.cache_ipv6_answers, OP_EQ, 0); // Test success with cache ipv6 DNS - tor_free(config_port_valid); + config_free_lines(config_port_valid); config_port_valid = NULL; + SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf)); smartlist_clear(slout); config_port_valid = mock_config_line("DNSPort", "42 CacheIPv6DNS"); ret = parse_port_config(slout, config_port_valid, NULL, "DNS", 0, @@ -4165,7 +4182,8 @@ test_config_parse_port_config__ports__ports_given(void *data) tt_int_op(port_cfg->entry_cfg.cache_ipv6_answers, OP_EQ, 1); // Test success with no cache ipv4 DNS - tor_free(config_port_valid); + config_free_lines(config_port_valid); config_port_valid = NULL; + SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf)); smartlist_clear(slout); config_port_valid = mock_config_line("DNSPort", "42 NoCacheIPv4DNS"); ret = parse_port_config(slout, config_port_valid, NULL, "DNS", 0, @@ -4177,7 +4195,8 @@ test_config_parse_port_config__ports__ports_given(void *data) tt_int_op(port_cfg->entry_cfg.cache_ipv6_answers, OP_EQ, 0); // Test success with cache DNS - tor_free(config_port_valid); + config_free_lines(config_port_valid); config_port_valid = NULL; + SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf)); smartlist_clear(slout); config_port_valid = mock_config_line("DNSPort", "42 CacheDNS"); ret = parse_port_config(slout, config_port_valid, NULL, "DNS", 0, @@ -4189,7 +4208,8 @@ test_config_parse_port_config__ports__ports_given(void *data) tt_int_op(port_cfg->entry_cfg.cache_ipv6_answers, OP_EQ, 1); // Test success with use cached ipv4 DNS - tor_free(config_port_valid); + config_free_lines(config_port_valid); config_port_valid = NULL; + SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf)); smartlist_clear(slout); config_port_valid = mock_config_line("DNSPort", "42 UseIPv4Cache"); ret = parse_port_config(slout, config_port_valid, NULL, "DNS", 0, @@ -4201,7 +4221,8 @@ test_config_parse_port_config__ports__ports_given(void *data) tt_int_op(port_cfg->entry_cfg.use_cached_ipv6_answers, OP_EQ, 0); // Test success with use cached ipv6 DNS - tor_free(config_port_valid); + config_free_lines(config_port_valid); config_port_valid = NULL; + SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf)); smartlist_clear(slout); config_port_valid = mock_config_line("DNSPort", "42 UseIPv6Cache"); ret = parse_port_config(slout, config_port_valid, NULL, "DNS", 0, @@ -4213,7 +4234,8 @@ test_config_parse_port_config__ports__ports_given(void *data) tt_int_op(port_cfg->entry_cfg.use_cached_ipv6_answers, OP_EQ, 1); // Test success with use cached DNS - tor_free(config_port_valid); + config_free_lines(config_port_valid); config_port_valid = NULL; + SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf)); smartlist_clear(slout); config_port_valid = mock_config_line("DNSPort", "42 UseDNSCache"); ret = parse_port_config(slout, config_port_valid, NULL, "DNS", 0, @@ -4225,7 +4247,8 @@ test_config_parse_port_config__ports__ports_given(void *data) tt_int_op(port_cfg->entry_cfg.use_cached_ipv6_answers, OP_EQ, 1); // Test success with not preferring ipv6 automap - tor_free(config_port_valid); + config_free_lines(config_port_valid); config_port_valid = NULL; + SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf)); smartlist_clear(slout); config_port_valid = mock_config_line("DNSPort", "42 NoPreferIPv6Automap"); ret = parse_port_config(slout, config_port_valid, NULL, "DNS", 0, @@ -4236,7 +4259,8 @@ test_config_parse_port_config__ports__ports_given(void *data) tt_int_op(port_cfg->entry_cfg.prefer_ipv6_virtaddr, OP_EQ, 0); // Test success with prefer SOCKS no auth - tor_free(config_port_valid); + config_free_lines(config_port_valid); config_port_valid = NULL; + SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf)); smartlist_clear(slout); config_port_valid = mock_config_line("DNSPort", "42 PreferSOCKSNoAuth"); ret = parse_port_config(slout, config_port_valid, NULL, "DNS", 0, @@ -4247,8 +4271,9 @@ test_config_parse_port_config__ports__ports_given(void *data) tt_int_op(port_cfg->entry_cfg.socks_prefer_no_auth, OP_EQ, 1); // Test failure with both a zero port and a non-zero port - tor_free(config_port_invalid); - tor_free(config_port_valid); + config_free_lines(config_port_invalid); config_port_invalid = NULL; + config_free_lines(config_port_valid); config_port_valid = NULL; + SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf)); smartlist_clear(slout); config_port_invalid = mock_config_line("DNSPort", "0"); config_port_valid = mock_config_line("DNSPort", "42"); @@ -4258,6 +4283,7 @@ test_config_parse_port_config__ports__ports_given(void *data) tt_int_op(ret, OP_EQ, -1); // Test success with warn non-local control + SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf)); smartlist_clear(slout); ret = parse_port_config(slout, config_port_valid, NULL, "DNS", CONN_TYPE_CONTROL_LISTENER, "127.0.0.42", 0, @@ -4265,6 +4291,7 @@ test_config_parse_port_config__ports__ports_given(void *data) tt_int_op(ret, OP_EQ, 0); // Test success with warn non-local listener + SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf)); smartlist_clear(slout); ret = parse_port_config(slout, config_port_valid, NULL, "DNS", CONN_TYPE_EXT_OR_LISTENER, "127.0.0.42", 0, @@ -4272,6 +4299,7 @@ test_config_parse_port_config__ports__ports_given(void *data) tt_int_op(ret, OP_EQ, 0); // Test success with warn non-local other + SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf)); smartlist_clear(slout); ret = parse_port_config(slout, config_port_valid, NULL, "DNS", 0, "127.0.0.42", 0, CL_PORT_WARN_NONLOCAL); @@ -4283,7 +4311,9 @@ test_config_parse_port_config__ports__ports_given(void *data) tt_int_op(ret, OP_EQ, 0); // Test success with both ipv4 and ipv6 but without stream options - tor_free(config_port_valid); + config_free_lines(config_port_invalid); config_port_invalid = NULL; + config_port_valid = NULL; + SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf)); smartlist_clear(slout); config_port_valid = mock_config_line("DNSPort", "42 IPv4Traffic " "IPv6Traffic"); @@ -4298,7 +4328,8 @@ test_config_parse_port_config__ports__ports_given(void *data) tt_int_op(port_cfg->entry_cfg.ipv6_traffic, OP_EQ, 0); // Test failure for a SessionGroup argument with invalid value - tor_free(config_port_invalid); + config_free_lines(config_port_invalid); config_port_invalid = NULL; + SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf)); smartlist_clear(slout); config_port_invalid = mock_config_line("DNSPort", "42 SessionGroup=invalid"); ret = parse_port_config(slout, config_port_invalid, NULL, "DNS", 0, @@ -4309,7 +4340,8 @@ test_config_parse_port_config__ports__ports_given(void *data) // Potential bug. // Test failure for a SessionGroup argument with valid value but with stream // options allowed - tor_free(config_port_invalid); + config_free_lines(config_port_invalid); config_port_invalid = NULL; + SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf)); smartlist_clear(slout); config_port_invalid = mock_config_line("DNSPort", "42 SessionGroup=123"); ret = parse_port_config(slout, config_port_invalid, NULL, "DNS", 0, @@ -4317,7 +4349,8 @@ test_config_parse_port_config__ports__ports_given(void *data) tt_int_op(ret, OP_EQ, -1); // Test failure for more than one SessionGroup argument - tor_free(config_port_invalid); + config_free_lines(config_port_invalid); config_port_invalid = NULL; + SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf)); smartlist_clear(slout); config_port_invalid = mock_config_line("DNSPort", "42 SessionGroup=123 " "SessionGroup=321"); @@ -4326,7 +4359,8 @@ test_config_parse_port_config__ports__ports_given(void *data) tt_int_op(ret, OP_EQ, -1); // Test success with a sessiongroup options - tor_free(config_port_valid); + config_free_lines(config_port_valid); config_port_valid = NULL; + SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf)); smartlist_clear(slout); config_port_valid = mock_config_line("DNSPort", "42 SessionGroup=1111122"); ret = parse_port_config(slout, config_port_valid, NULL, "DNS", 0, @@ -4337,7 +4371,8 @@ test_config_parse_port_config__ports__ports_given(void *data) tt_int_op(port_cfg->entry_cfg.session_group, OP_EQ, 1111122); // Test success with a zero unix domain socket, and doesnt add it to out - tor_free(config_port_valid); + config_free_lines(config_port_valid); config_port_valid = NULL; + SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf)); smartlist_clear(slout); config_port_valid = mock_config_line("DNSPort", "0"); ret = parse_port_config(slout, config_port_valid, NULL, "DNS", 0, @@ -4346,7 +4381,8 @@ test_config_parse_port_config__ports__ports_given(void *data) tt_int_op(smartlist_len(slout), OP_EQ, 0); // Test success with a one unix domain socket, and doesnt add it to out - tor_free(config_port_valid); + config_free_lines(config_port_valid); config_port_valid = NULL; + SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf)); smartlist_clear(slout); config_port_valid = mock_config_line("DNSPort", "something"); ret = parse_port_config(slout, config_port_valid, NULL, "DNS", 0, @@ -4358,7 +4394,8 @@ test_config_parse_port_config__ports__ports_given(void *data) tt_str_op(port_cfg->unix_addr, OP_EQ, "something"); // Test success with a port of auto - it uses the default address - tor_free(config_port_valid); + config_free_lines(config_port_valid); config_port_valid = NULL; + SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf)); smartlist_clear(slout); config_port_valid = mock_config_line("DNSPort", "auto"); ret = parse_port_config(slout, config_port_valid, NULL, "DNS", 0, @@ -4371,7 +4408,8 @@ test_config_parse_port_config__ports__ports_given(void *data) tt_assert(tor_addr_eq(&port_cfg->addr, &addr)) // Test success with parsing both an address and an auto port - tor_free(config_port_valid); + config_free_lines(config_port_valid); config_port_valid = NULL; + SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf)); smartlist_clear(slout); config_port_valid = mock_config_line("DNSPort", "127.0.0.122:auto"); ret = parse_port_config(slout, config_port_valid, NULL, "DNS", 0, @@ -4384,14 +4422,15 @@ test_config_parse_port_config__ports__ports_given(void *data) tt_assert(tor_addr_eq(&port_cfg->addr, &addr)) // Test failure when asked to parse an invalid address followed by auto - tor_free(config_port_invalid); + config_free_lines(config_port_invalid); config_port_invalid = NULL; config_port_invalid = mock_config_line("DNSPort", "invalidstuff!!:auto"); ret = parse_port_config(NULL, config_port_invalid, NULL, "DNS", 0, "127.0.0.46", 0, 0); tt_int_op(ret, OP_EQ, -1); // Test success with parsing both an address and a real port - tor_free(config_port_valid); + config_free_lines(config_port_valid); config_port_valid = NULL; + SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf)); smartlist_clear(slout); config_port_valid = mock_config_line("DNSPort", "127.0.0.123:656"); ret = parse_port_config(slout, config_port_valid, NULL, "DNS", 0, @@ -4404,7 +4443,8 @@ test_config_parse_port_config__ports__ports_given(void *data) tt_assert(tor_addr_eq(&port_cfg->addr, &addr)) // Test failure if we can't parse anything at all - tor_free(config_port_invalid); + config_free_lines(config_port_invalid); config_port_invalid = NULL; + SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf)); smartlist_clear(slout); config_port_invalid = mock_config_line("DNSPort", "something wrong"); ret = parse_port_config(slout, config_port_invalid, NULL, "DNS", 0, @@ -4412,7 +4452,8 @@ test_config_parse_port_config__ports__ports_given(void *data) tt_int_op(ret, OP_EQ, -1); // Test failure if we find both an address, a port and an auto - tor_free(config_port_invalid); + config_free_lines(config_port_invalid); config_port_invalid = NULL; + SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf)); smartlist_clear(slout); config_port_invalid = mock_config_line("DNSPort", "127.0.1.0:123:auto"); ret = parse_port_config(slout, config_port_invalid, NULL, "DNS", 0, @@ -4421,7 +4462,8 @@ test_config_parse_port_config__ports__ports_given(void *data) // Test that default to group writeable default sets group writeable for // domain socket - tor_free(config_port_valid); + config_free_lines(config_port_valid); config_port_valid = NULL; + SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf)); smartlist_clear(slout); config_port_valid = mock_config_line("DNSPort", "unix:/tmp/somewhere"); ret = parse_port_config(slout, config_port_valid, NULL, "DNS", @@ -4437,9 +4479,11 @@ test_config_parse_port_config__ports__ports_given(void *data) #endif done: + if (slout) + SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf)); smartlist_free(slout); - tor_free(config_port_invalid); - tor_free(config_port_valid); + config_free_lines(config_port_invalid); config_port_invalid = NULL; + config_free_lines(config_port_valid); config_port_valid = NULL; } static void @@ -4454,7 +4498,7 @@ test_config_parse_port_config__ports__server_options(void *data) slout = smartlist_new(); // Test success with NoAdvertise option - tor_free(config_port_valid); + config_free_lines(config_port_valid); config_port_valid = NULL; config_port_valid = mock_config_line("DNSPort", "127.0.0.124:656 NoAdvertise"); ret = parse_port_config(slout, config_port_valid, NULL, "DNS", 0, NULL, 0, @@ -4466,7 +4510,8 @@ test_config_parse_port_config__ports__server_options(void *data) tt_int_op(port_cfg->server_cfg.no_listen, OP_EQ, 0); // Test success with NoListen option - tor_free(config_port_valid); + config_free_lines(config_port_valid); config_port_valid = NULL; + SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf)); smartlist_clear(slout); config_port_valid = mock_config_line("DNSPort", "127.0.0.124:656 NoListen"); ret = parse_port_config(slout, config_port_valid, NULL, "DNS", 0, NULL, 0, @@ -4478,7 +4523,8 @@ test_config_parse_port_config__ports__server_options(void *data) tt_int_op(port_cfg->server_cfg.no_listen, OP_EQ, 1); // Test failure with both NoAdvertise and NoListen option - tor_free(config_port_invalid); + config_free_lines(config_port_invalid); config_port_invalid = NULL; + SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf)); smartlist_clear(slout); config_port_invalid = mock_config_line("DNSPort", "127.0.0.124:656 NoListen " "NoAdvertise"); @@ -4487,7 +4533,8 @@ test_config_parse_port_config__ports__server_options(void *data) tt_int_op(ret, OP_EQ, -1); // Test success with IPv4Only - tor_free(config_port_valid); + config_free_lines(config_port_valid); config_port_valid = NULL; + SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf)); smartlist_clear(slout); config_port_valid = mock_config_line("DNSPort", "127.0.0.124:656 IPv4Only"); ret = parse_port_config(slout, config_port_valid, NULL, "DNS", 0, NULL, 0, @@ -4499,7 +4546,8 @@ test_config_parse_port_config__ports__server_options(void *data) tt_int_op(port_cfg->server_cfg.bind_ipv6_only, OP_EQ, 0); // Test success with IPv6Only - tor_free(config_port_valid); + config_free_lines(config_port_valid); config_port_valid = NULL; + SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf)); smartlist_clear(slout); config_port_valid = mock_config_line("DNSPort", "[::1]:656 IPv6Only"); ret = parse_port_config(slout, config_port_valid, NULL, "DNS", 0, NULL, 0, @@ -4511,7 +4559,8 @@ test_config_parse_port_config__ports__server_options(void *data) tt_int_op(port_cfg->server_cfg.bind_ipv6_only, OP_EQ, 1); // Test failure with both IPv4Only and IPv6Only - tor_free(config_port_invalid); + config_free_lines(config_port_invalid); config_port_invalid = NULL; + SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf)); smartlist_clear(slout); config_port_invalid = mock_config_line("DNSPort", "127.0.0.124:656 IPv6Only " "IPv4Only"); @@ -4520,7 +4569,8 @@ test_config_parse_port_config__ports__server_options(void *data) tt_int_op(ret, OP_EQ, -1); // Test success with invalid parameter - tor_free(config_port_valid); + config_free_lines(config_port_valid); config_port_valid = NULL; + SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf)); smartlist_clear(slout); config_port_valid = mock_config_line("DNSPort", "127.0.0.124:656 unknown"); ret = parse_port_config(slout, config_port_valid, NULL, "DNS", 0, NULL, 0, @@ -4529,7 +4579,8 @@ test_config_parse_port_config__ports__server_options(void *data) tt_int_op(smartlist_len(slout), OP_EQ, 1); // Test failure when asked to bind only to ipv6 but gets an ipv4 address - tor_free(config_port_invalid); + config_free_lines(config_port_invalid); config_port_invalid = NULL; + SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf)); smartlist_clear(slout); config_port_invalid = mock_config_line("DNSPort", "127.0.0.124:656 IPv6Only"); @@ -4538,7 +4589,8 @@ test_config_parse_port_config__ports__server_options(void *data) tt_int_op(ret, OP_EQ, -1); // Test failure when asked to bind only to ipv4 but gets an ipv6 address - tor_free(config_port_invalid); + config_free_lines(config_port_invalid); config_port_invalid = NULL; + SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf)); smartlist_clear(slout); config_port_invalid = mock_config_line("DNSPort", "[::1]:656 IPv4Only"); ret = parse_port_config(slout, config_port_invalid, NULL, "DNS", 0, NULL, @@ -4546,9 +4598,11 @@ test_config_parse_port_config__ports__server_options(void *data) tt_int_op(ret, OP_EQ, -1); done: + if (slout) + SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf)); smartlist_free(slout); - tor_free(config_port_invalid); - tor_free(config_port_valid); + config_free_lines(config_port_invalid); config_port_invalid = NULL; + config_free_lines(config_port_valid); config_port_valid = NULL; } #define CONFIG_TEST(name, flags) \ diff --git a/src/test/test_connection.c b/src/test/test_connection.c index c5ef92931d..15ae973f00 100644 --- a/src/test/test_connection.c +++ b/src/test/test_connection.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2015, The Tor Project, Inc. */ +/* Copyright (c) 2015-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #include "orconfig.h" diff --git a/src/test/test_containers.c b/src/test/test_containers.c index 1ee240fb0d..fd896760c0 100644 --- a/src/test/test_containers.c +++ b/src/test/test_containers.c @@ -1,6 +1,6 @@ /* Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #include "orconfig.h" diff --git a/src/test/test_controller.c b/src/test/test_controller.c index b40825bb5d..7f9db4312f 100644 --- a/src/test/test_controller.c +++ b/src/test/test_controller.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2015, The Tor Project, Inc. */ +/* Copyright (c) 2015-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #define CONTROL_PRIVATE diff --git a/src/test/test_controller_events.c b/src/test/test_controller_events.c index 7b439d490d..11e1e3dc8f 100644 --- a/src/test/test_controller_events.c +++ b/src/test/test_controller_events.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2013-2015, The Tor Project, Inc. */ +/* Copyright (c) 2013-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #define CONNECTION_PRIVATE diff --git a/src/test/test_crypto.c b/src/test/test_crypto.c index fb21f3ad09..6a95e92733 100644 --- a/src/test/test_crypto.c +++ b/src/test/test_crypto.c @@ -1,6 +1,6 @@ /* Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #include "orconfig.h" @@ -147,8 +147,14 @@ test_crypto_rng_engine(void *arg) /* We should correct the method if it's a dummy. */ RAND_set_rand_method(&dummy_method); +#ifdef LIBRESSL_VERSION_NUMBER + /* On libressl, you can't override the RNG. */ + tt_assert(RAND_get_rand_method() == RAND_OpenSSL()); + tt_int_op(0, ==, crypto_force_rand_ssleay()); +#else tt_assert(RAND_get_rand_method() == &dummy_method); tt_int_op(1, ==, crypto_force_rand_ssleay()); +#endif tt_assert(RAND_get_rand_method() == RAND_OpenSSL()); /* Make sure we aren't calling dummy_method */ @@ -1084,7 +1090,7 @@ test_crypto_digests(void *arg) { crypto_pk_t *k = NULL; ssize_t r; - digests_t pkey_digests; + common_digests_t pkey_digests; char digest[DIGEST_LEN]; (void)arg; @@ -1098,7 +1104,7 @@ test_crypto_digests(void *arg) tt_mem_op(hex_str(digest, DIGEST_LEN),OP_EQ, AUTHORITY_SIGNKEY_A_DIGEST, HEX_DIGEST_LEN); - r = crypto_pk_get_all_digests(k, &pkey_digests); + r = crypto_pk_get_common_digests(k, &pkey_digests); tt_mem_op(hex_str(pkey_digests.d[DIGEST_SHA1], DIGEST_LEN),OP_EQ, AUTHORITY_SIGNKEY_A_DIGEST, HEX_DIGEST_LEN); @@ -1108,6 +1114,11 @@ test_crypto_digests(void *arg) crypto_pk_free(k); } +#ifndef OPENSSL_1_1_API +#define EVP_ENCODE_CTX_new() tor_malloc_zero(sizeof(EVP_ENCODE_CTX)) +#define EVP_ENCODE_CTX_free(ctx) tor_free(ctx) +#endif + /** Encode src into dest with OpenSSL's EVP Encode interface, returning the * length of the encoded data in bytes. */ @@ -1115,12 +1126,13 @@ static int base64_encode_evp(char *dest, char *src, size_t srclen) { const unsigned char *s = (unsigned char*)src; - EVP_ENCODE_CTX ctx; + EVP_ENCODE_CTX *ctx = EVP_ENCODE_CTX_new(); int len, ret; - EVP_EncodeInit(&ctx); - EVP_EncodeUpdate(&ctx, (unsigned char *)dest, &len, s, (int)srclen); - EVP_EncodeFinal(&ctx, (unsigned char *)(dest + len), &ret); + EVP_EncodeInit(ctx); + EVP_EncodeUpdate(ctx, (unsigned char *)dest, &len, s, (int)srclen); + EVP_EncodeFinal(ctx, (unsigned char *)(dest + len), &ret); + EVP_ENCODE_CTX_free(ctx); return ret+ len; } diff --git a/src/test/test_crypto_slow.c b/src/test/test_crypto_slow.c index 853a08d886..9b39199cd0 100644 --- a/src/test/test_crypto_slow.c +++ b/src/test/test_crypto_slow.c @@ -1,6 +1,6 @@ /* Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #include "orconfig.h" diff --git a/src/test/test_data.c b/src/test/test_data.c index 6afba65757..32de54bc84 100644 --- a/src/test/test_data.c +++ b/src/test/test_data.c @@ -1,6 +1,6 @@ /* Copyright 2001-2004 Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /* Our unit test expect that the AUTHORITY_CERT_* public keys will sort diff --git a/src/test/test_dir.c b/src/test/test_dir.c index 4824a94132..ea179fb02c 100644 --- a/src/test/test_dir.c +++ b/src/test/test_dir.c @@ -1,6 +1,6 @@ /* Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #include "orconfig.h" @@ -497,7 +497,6 @@ test_dir_routerinfo_parsing(void *arg) #undef CHECK_FAIL #undef CHECK_OK done: - memarea_clear_freelist(); routerinfo_free(ri); } @@ -601,7 +600,6 @@ test_dir_extrainfo_parsing(void *arg) done: escaped(NULL); - memarea_clear_freelist(); extrainfo_free(ei); routerinfo_free(ri); digestmap_free((digestmap_t*)map, routerinfo_free_wrapper_); @@ -1999,11 +1997,13 @@ test_a_networkstatus( tt_assert(con_md3); /* All three should have the same digest. */ - tt_mem_op(&con->digests,OP_EQ, &con2->digests, sizeof(digests_t)); - tt_mem_op(&con->digests,OP_EQ, &con3->digests, sizeof(digests_t)); + tt_mem_op(&con->digests,OP_EQ, &con2->digests, sizeof(common_digests_t)); + tt_mem_op(&con->digests,OP_EQ, &con3->digests, sizeof(common_digests_t)); - tt_mem_op(&con_md->digests,OP_EQ, &con_md2->digests, sizeof(digests_t)); - tt_mem_op(&con_md->digests,OP_EQ, &con_md3->digests, sizeof(digests_t)); + tt_mem_op(&con_md->digests,OP_EQ, &con_md2->digests, + sizeof(common_digests_t)); + tt_mem_op(&con_md->digests,OP_EQ, &con_md3->digests, + sizeof(common_digests_t)); /* Extract a detached signature from con3. */ detached_text1 = get_detached_sigs(con3, con_md3); @@ -2017,7 +2017,7 @@ test_a_networkstatus( tt_int_op(dsig1->fresh_until,OP_EQ, con3->fresh_until); tt_int_op(dsig1->valid_until,OP_EQ, con3->valid_until); { - digests_t *dsig_digests = strmap_get(dsig1->digests, "ns"); + common_digests_t *dsig_digests = strmap_get(dsig1->digests, "ns"); tt_assert(dsig_digests); tt_mem_op(dsig_digests->d[DIGEST_SHA1], OP_EQ, con3->digests.d[DIGEST_SHA1], DIGEST_LEN); @@ -3312,7 +3312,6 @@ test_dir_download_status_schedule(void *arg) tt_assert(increment == expected_increment); tt_assert(dls_failure.next_attempt_at == TIME_MIN + expected_increment); -#if TIME_T_IS_SIGNED delay1 = INT_MAX; increment = download_status_schedule_get_delay(&dls_failure, schedule, @@ -3320,7 +3319,6 @@ test_dir_download_status_schedule(void *arg) expected_increment = delay1; tt_assert(increment == expected_increment); tt_assert(dls_failure.next_attempt_at == TIME_MAX); -#endif delay1 = 0; increment = download_status_schedule_get_delay(&dls_attempt, diff --git a/src/test/test_dir_common.c b/src/test/test_dir_common.c index f9e97c973c..0b446c2dfd 100644 --- a/src/test/test_dir_common.c +++ b/src/test/test_dir_common.c @@ -1,6 +1,6 @@ /* Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2014, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #include "orconfig.h" diff --git a/src/test/test_dir_common.h b/src/test/test_dir_common.h index 9557cb7157..9682b0db49 100644 --- a/src/test/test_dir_common.h +++ b/src/test/test_dir_common.h @@ -1,6 +1,6 @@ /* Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2014, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #include "or.h" diff --git a/src/test/test_dir_handle_get.c b/src/test/test_dir_handle_get.c index e1ac50e66e..954830dcaf 100644 --- a/src/test/test_dir_handle_get.c +++ b/src/test/test_dir_handle_get.c @@ -1,6 +1,6 @@ /* Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #define RENDCOMMON_PRIVATE @@ -1764,7 +1764,7 @@ static void status_vote_current_consensus_ns_test(char **header, char **body, size_t *body_len) { - digests_t digests; + common_digests_t digests; dir_connection_t *conn = NULL; #define NETWORK_STATUS "some network status string" @@ -2255,7 +2255,6 @@ status_vote_next_consensus_signatures_test(char **header, char **body, static void test_dir_handle_get_status_vote_next_consensus_signatures_not_found(void* data) { - dir_connection_t *conn = NULL; char *header = NULL, *body = NULL; size_t body_used; (void) data; @@ -2266,7 +2265,6 @@ test_dir_handle_get_status_vote_next_consensus_signatures_not_found(void* data) tt_str_op(NOT_FOUND, OP_EQ, header); done: - connection_free_(TO_CONN(conn)); tor_free(header); tor_free(body); } @@ -2308,7 +2306,6 @@ test_dir_handle_get_status_vote_next_consensus_signatures(void* data) static void test_dir_handle_get_status_vote_next_consensus_signatures_busy(void* data) { - dir_connection_t *conn = NULL; char *header = NULL, *body = NULL; size_t body_used; (void) data; @@ -2328,7 +2325,6 @@ test_dir_handle_get_status_vote_next_consensus_signatures_busy(void* data) done: UNMOCK(get_options); NS_UNMOCK(dirvote_get_pending_detached_signatures); - connection_free_(TO_CONN(conn)); tor_free(header); tor_free(body); or_options_free(mock_options); mock_options = NULL; diff --git a/src/test/test_dns.c b/src/test/test_dns.c index 6fdbe905e0..5289ca58ff 100644 --- a/src/test/test_dns.c +++ b/src/test/test_dns.c @@ -490,7 +490,7 @@ NS(test_main)(void *arg) (void)arg; - TO_CONN(exitconn)->address = tor_strdup("127.0.0.1.in-addr.arpa"); + TO_CONN(exitconn)->address = tor_strdup("1.0.0.127.in-addr.arpa"); NS_MOCK(router_my_exit_policy_is_reject_star); diff --git a/src/test/test_entryconn.c b/src/test/test_entryconn.c index 6edc166743..9580a1fd3f 100644 --- a/src/test/test_entryconn.c +++ b/src/test/test_entryconn.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2014-2015, The Tor Project, Inc. */ +/* Copyright (c) 2014-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #include "orconfig.h" diff --git a/src/test/test_entrynodes.c b/src/test/test_entrynodes.c index 0011d3698a..b1c3accfab 100644 --- a/src/test/test_entrynodes.c +++ b/src/test/test_entrynodes.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2014-2015, The Tor Project, Inc. */ +/* Copyright (c) 2014-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #include "orconfig.h" @@ -9,14 +9,16 @@ #include "or.h" #include "test.h" + +#include "config.h" #include "entrynodes.h" -#include "routerparse.h" #include "nodelist.h" -#include "util.h" +#include "policies.h" #include "routerlist.h" +#include "routerparse.h" #include "routerset.h" #include "statefile.h" -#include "config.h" +#include "util.h" #include "test_helpers.h" @@ -70,6 +72,14 @@ fake_network_setup(const struct testcase_t *testcase) return dummy_state; } +static or_options_t mocked_options; + +static const or_options_t * +mock_get_options(void) +{ + return &mocked_options; +} + /** Test choose_random_entry() with none of our routers being guard nodes. */ static void test_choose_random_entry_no_guards(void *arg) @@ -78,6 +88,14 @@ test_choose_random_entry_no_guards(void *arg) (void) arg; + MOCK(get_options, mock_get_options); + + /* Check that we get a guard if it passes preferred + * address settings */ + memset(&mocked_options, 0, sizeof(mocked_options)); + mocked_options.ClientUseIPv4 = 1; + mocked_options.ClientPreferIPv6ORPort = 0; + /* Try to pick an entry even though none of our routers are guards. */ chosen_entry = choose_random_entry(NULL); @@ -86,8 +104,55 @@ test_choose_random_entry_no_guards(void *arg) can't find a proper entry guard. */ tt_assert(chosen_entry); + /* And with the other IP version active */ + mocked_options.ClientUseIPv6 = 1; + chosen_entry = choose_random_entry(NULL); + tt_assert(chosen_entry); + + /* And with the preference on auto */ + mocked_options.ClientPreferIPv6ORPort = -1; + chosen_entry = choose_random_entry(NULL); + tt_assert(chosen_entry); + + /* Check that we don't get a guard if it doesn't pass mandatory address + * settings */ + memset(&mocked_options, 0, sizeof(mocked_options)); + mocked_options.ClientUseIPv4 = 0; + mocked_options.ClientPreferIPv6ORPort = 0; + + chosen_entry = choose_random_entry(NULL); + + /* If we don't allow IPv4 at all, we don't get a guard*/ + tt_assert(!chosen_entry); + + /* Check that we get a guard if it passes allowed but not preferred address + * settings */ + memset(&mocked_options, 0, sizeof(mocked_options)); + mocked_options.ClientUseIPv4 = 1; + mocked_options.ClientUseIPv6 = 1; + mocked_options.ClientPreferIPv6ORPort = 1; + + chosen_entry = choose_random_entry(NULL); + tt_assert(chosen_entry); + + /* Check that we get a guard if it passes preferred address settings when + * they're auto */ + memset(&mocked_options, 0, sizeof(mocked_options)); + mocked_options.ClientUseIPv4 = 1; + mocked_options.ClientPreferIPv6ORPort = -1; + + chosen_entry = choose_random_entry(NULL); + tt_assert(chosen_entry); + + /* And with IPv6 active */ + mocked_options.ClientUseIPv6 = 1; + + chosen_entry = choose_random_entry(NULL); + tt_assert(chosen_entry); + done: - ; + memset(&mocked_options, 0, sizeof(mocked_options)); + UNMOCK(get_options); } /** Test choose_random_entry() with only one of our routers being a @@ -101,17 +166,78 @@ test_choose_random_entry_one_possible_guard(void *arg) (void) arg; + MOCK(get_options, mock_get_options); + /* Set one of the nodes to be a guard. */ our_nodelist = nodelist_get_list(); the_guard = smartlist_get(our_nodelist, 4); /* chosen by fair dice roll */ the_guard->is_possible_guard = 1; + /* Check that we get the guard if it passes preferred + * address settings */ + memset(&mocked_options, 0, sizeof(mocked_options)); + mocked_options.ClientUseIPv4 = 1; + mocked_options.ClientPreferIPv6ORPort = 0; + /* Pick an entry. Make sure we pick the node we marked as guard. */ chosen_entry = choose_random_entry(NULL); tt_ptr_op(chosen_entry, OP_EQ, the_guard); + /* And with the other IP version active */ + mocked_options.ClientUseIPv6 = 1; + chosen_entry = choose_random_entry(NULL); + tt_ptr_op(chosen_entry, OP_EQ, the_guard); + + /* And with the preference on auto */ + mocked_options.ClientPreferIPv6ORPort = -1; + chosen_entry = choose_random_entry(NULL); + tt_ptr_op(chosen_entry, OP_EQ, the_guard); + + /* Check that we don't get a guard if it doesn't pass mandatory address + * settings */ + memset(&mocked_options, 0, sizeof(mocked_options)); + mocked_options.ClientUseIPv4 = 0; + mocked_options.ClientPreferIPv6ORPort = 0; + + chosen_entry = choose_random_entry(NULL); + + /* If we don't allow IPv4 at all, we don't get a guard*/ + tt_assert(!chosen_entry); + + /* Check that we get a node if it passes allowed but not preferred + * address settings */ + memset(&mocked_options, 0, sizeof(mocked_options)); + mocked_options.ClientUseIPv4 = 1; + mocked_options.ClientUseIPv6 = 1; + mocked_options.ClientPreferIPv6ORPort = 1; + + chosen_entry = choose_random_entry(NULL); + + /* We disable the guard check and the preferred address check at the same + * time, so we can't be sure we get the guard */ + tt_assert(chosen_entry); + + /* Check that we get a node if it is allowed but not preferred when settings + * are auto */ + memset(&mocked_options, 0, sizeof(mocked_options)); + mocked_options.ClientUseIPv4 = 1; + mocked_options.ClientPreferIPv6ORPort = -1; + + chosen_entry = choose_random_entry(NULL); + + /* We disable the guard check and the preferred address check at the same + * time, so we can't be sure we get the guard */ + tt_assert(chosen_entry); + + /* and with IPv6 active */ + mocked_options.ClientUseIPv6 = 1; + + chosen_entry = choose_random_entry(NULL); + tt_assert(chosen_entry); + done: - ; + memset(&mocked_options, 0, sizeof(mocked_options)); + UNMOCK(get_options); } /** Helper to conduct tests for populate_live_entry_guards(). @@ -624,6 +750,93 @@ test_entry_is_live(void *arg) ; /* XXX */ } +#define TEST_IPV4_ADDR "123.45.67.89" +#define TEST_IPV6_ADDR "[1234:5678:90ab:cdef::]" + +static void +test_node_preferred_orport(void *arg) +{ + (void)arg; + tor_addr_t ipv4_addr; + const uint16_t ipv4_port = 4444; + tor_addr_t ipv6_addr; + const uint16_t ipv6_port = 6666; + routerinfo_t node_ri; + node_t node; + tor_addr_port_t ap; + + /* Setup options */ + memset(&mocked_options, 0, sizeof(mocked_options)); + /* We don't test ClientPreferIPv6ORPort here, because it's used in + * nodelist_set_consensus to setup node.ipv6_preferred, which we set + * directly. */ + MOCK(get_options, mock_get_options); + + /* Setup IP addresses */ + tor_addr_parse(&ipv4_addr, TEST_IPV4_ADDR); + tor_addr_parse(&ipv6_addr, TEST_IPV6_ADDR); + + /* Setup node_ri */ + memset(&node_ri, 0, sizeof(node_ri)); + node_ri.addr = tor_addr_to_ipv4h(&ipv4_addr); + node_ri.or_port = ipv4_port; + tor_addr_copy(&node_ri.ipv6_addr, &ipv6_addr); + node_ri.ipv6_orport = ipv6_port; + + /* Setup node */ + memset(&node, 0, sizeof(node)); + node.ri = &node_ri; + + /* Check the preferred address is IPv4 if we're only using IPv4, regardless + * of whether we prefer it or not */ + mocked_options.ClientUseIPv4 = 1; + mocked_options.ClientUseIPv6 = 0; + node.ipv6_preferred = 0; + node_get_pref_orport(&node, &ap); + tt_assert(tor_addr_eq(&ap.addr, &ipv4_addr)); + tt_assert(ap.port == ipv4_port); + + node.ipv6_preferred = 1; + node_get_pref_orport(&node, &ap); + tt_assert(tor_addr_eq(&ap.addr, &ipv4_addr)); + tt_assert(ap.port == ipv4_port); + + /* Check the preferred address is IPv4 if we're using IPv4 and IPv6, but + * don't prefer the IPv6 address */ + mocked_options.ClientUseIPv4 = 1; + mocked_options.ClientUseIPv6 = 1; + node.ipv6_preferred = 0; + node_get_pref_orport(&node, &ap); + tt_assert(tor_addr_eq(&ap.addr, &ipv4_addr)); + tt_assert(ap.port == ipv4_port); + + /* Check the preferred address is IPv6 if we prefer it and + * ClientUseIPv6 is 1, regardless of ClientUseIPv4 */ + mocked_options.ClientUseIPv4 = 1; + mocked_options.ClientUseIPv6 = 1; + node.ipv6_preferred = 1; + node_get_pref_orport(&node, &ap); + tt_assert(tor_addr_eq(&ap.addr, &ipv6_addr)); + tt_assert(ap.port == ipv6_port); + + mocked_options.ClientUseIPv4 = 0; + node_get_pref_orport(&node, &ap); + tt_assert(tor_addr_eq(&ap.addr, &ipv6_addr)); + tt_assert(ap.port == ipv6_port); + + /* Check the preferred address is IPv6 if we don't prefer it, but + * ClientUseIPv4 is 0 */ + mocked_options.ClientUseIPv4 = 0; + mocked_options.ClientUseIPv6 = 1; + node.ipv6_preferred = fascist_firewall_prefer_ipv6_orport(&mocked_options); + node_get_pref_orport(&node, &ap); + tt_assert(tor_addr_eq(&ap.addr, &ipv6_addr)); + tt_assert(ap.port == ipv6_port); + + done: + UNMOCK(get_options); +} + static const struct testcase_setup_t fake_network = { fake_network_setup, fake_network_cleanup }; @@ -654,6 +867,9 @@ struct testcase_t entrynodes_tests[] = { { "entry_is_live", test_entry_is_live, TT_FORK, &fake_network, NULL }, + { "node_preferred_orport", + test_node_preferred_orport, + 0, NULL, NULL }, END_OF_TESTCASES }; diff --git a/src/test/test_extorport.c b/src/test/test_extorport.c index 5d38ed8fa2..1f92780177 100644 --- a/src/test/test_extorport.c +++ b/src/test/test_extorport.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2013-2015, The Tor Project, Inc. */ +/* Copyright (c) 2013-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #define CONNECTION_PRIVATE diff --git a/src/test/test_guardfraction.c b/src/test/test_guardfraction.c index 57063c9085..300590a3d9 100644 --- a/src/test/test_guardfraction.c +++ b/src/test/test_guardfraction.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2014, The Tor Project, Inc. */ +/* Copyright (c) 2014-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #define DIRSERV_PRIVATE diff --git a/src/test/test_helpers.c b/src/test/test_helpers.c index c3ca0c3554..c6daaf220a 100644 --- a/src/test/test_helpers.c +++ b/src/test/test_helpers.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2014, The Tor Project, Inc. */ +/* Copyright (c) 2014-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** diff --git a/src/test/test_helpers.h b/src/test/test_helpers.h index 369243b459..684375e1b1 100644 --- a/src/test/test_helpers.h +++ b/src/test/test_helpers.h @@ -1,4 +1,4 @@ -/* Copyright (c) 2014-2015, The Tor Project, Inc. */ +/* Copyright (c) 2014-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #ifndef TOR_TEST_HELPERS_H diff --git a/src/test/test_hs.c b/src/test/test_hs.c index 126e211858..49939a53cf 100644 --- a/src/test/test_hs.c +++ b/src/test/test_hs.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2007-2015, The Tor Project, Inc. */ +/* Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** diff --git a/src/test/test_introduce.c b/src/test/test_introduce.c index 0cab8ef4cc..9c7a86da66 100644 --- a/src/test/test_introduce.c +++ b/src/test/test_introduce.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2012-2015, The Tor Project, Inc. */ +/* Copyright (c) 2012-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #include "orconfig.h" diff --git a/src/test/test_keypin.c b/src/test/test_keypin.c index bd0f6fdd52..95657349c6 100644 --- a/src/test/test_keypin.c +++ b/src/test/test_keypin.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2014, The Tor Project, Inc. */ +/* Copyright (c) 2014-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #include "orconfig.h" diff --git a/src/test/test_link_handshake.c b/src/test/test_link_handshake.c index 7ad2c30d0f..e8856c60de 100644 --- a/src/test/test_link_handshake.c +++ b/src/test/test_link_handshake.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2014, The Tor Project, Inc. */ +/* Copyright (c) 2014-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #include "orconfig.h" diff --git a/src/test/test_logging.c b/src/test/test_logging.c index 6205b3bdc5..eb294fe6f8 100644 --- a/src/test/test_logging.c +++ b/src/test/test_logging.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2013-2015, The Tor Project, Inc. */ +/* Copyright (c) 2013-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #include "orconfig.h" diff --git a/src/test/test_microdesc.c b/src/test/test_microdesc.c index b205eff24e..7db819a622 100644 --- a/src/test/test_microdesc.c +++ b/src/test/test_microdesc.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2010-2015, The Tor Project, Inc. */ +/* Copyright (c) 2010-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #include "orconfig.h" diff --git a/src/test/test_nodelist.c b/src/test/test_nodelist.c index b0cb87dc60..d58f8a7fca 100644 --- a/src/test/test_nodelist.c +++ b/src/test/test_nodelist.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2007-2015, The Tor Project, Inc. */ +/* Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** diff --git a/src/test/test_ntor_cl.c b/src/test/test_ntor_cl.c index 915a5d0a7c..6df123162e 100644 --- a/src/test/test_ntor_cl.c +++ b/src/test/test_ntor_cl.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2012-2015, The Tor Project, Inc. */ +/* Copyright (c) 2012-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #include "orconfig.h" diff --git a/src/test/test_oom.c b/src/test/test_oom.c index 41cfcdbd81..2569b6e00f 100644 --- a/src/test/test_oom.c +++ b/src/test/test_oom.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2014-2015, The Tor Project, Inc. */ +/* Copyright (c) 2014-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /* Unit tests for OOM handling logic */ diff --git a/src/test/test_options.c b/src/test/test_options.c index dcf97f897f..d294e607a2 100644 --- a/src/test/test_options.c +++ b/src/test/test_options.c @@ -1,6 +1,6 @@ /* Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #define CONFIG_PRIVATE @@ -158,7 +158,6 @@ test_options_validate_impl(const char *configuration, } done: - memarea_clear_freelist(); escaped(NULL); policies_free_all(); config_free_lines(cl); @@ -211,7 +210,7 @@ test_have_enough_mem_for_dircache(void *arg) { (void)arg; or_options_t *opt=NULL; - or_options_t *dflt; + or_options_t *dflt=NULL; config_line_t *cl=NULL; char *msg=NULL;; int r; @@ -242,6 +241,7 @@ test_have_enough_mem_for_dircache(void *arg) } tor_free(msg); + config_free_lines(cl); cl = NULL; configuration = "ORPort 8080\nDirCache 1\nBridgeRelay 1"; r = config_get_lines(configuration, &cl, 1); tt_int_op(r, OP_EQ, 0); @@ -264,6 +264,7 @@ test_have_enough_mem_for_dircache(void *arg) } tor_free(msg); + config_free_lines(cl); cl = NULL; configuration = "ORPort 8080\nDirCache 0"; r = config_get_lines(configuration, &cl, 1); tt_int_op(r, OP_EQ, 0); @@ -291,9 +292,9 @@ test_have_enough_mem_for_dircache(void *arg) done: if (msg) tor_free(msg); - tor_free(dflt); - tor_free(opt); - tor_free(cl); + or_options_free(dflt); + or_options_free(opt); + config_free_lines(cl); return; } @@ -327,6 +328,7 @@ fixed_get_uname(void) "V3AuthVoteDelay 20\n" \ "V3AuthDistDelay 20\n" \ "V3AuthNIntervalsValid 3\n" \ + "ClientUseIPv4 1\n" \ "VirtualAddrNetworkIPv4 127.192.0.0/10\n" \ "VirtualAddrNetworkIPv6 [FE80::]/10\n" \ "SchedulerHighWaterMark__ 42\n" \ @@ -392,6 +394,14 @@ free_options_test_data(options_test_data_t *td) tor_free(td); } +#define expect_log_msg(str) \ + tt_assert_msg(mock_saved_log_has_message(str), \ + "expected log to contain " # str); + +#define expect_no_log_msg(str) \ + tt_assert_msg(!mock_saved_log_has_message(str), \ + "expected log to not contain " # str); + static void test_options_validate__uname_for_server(void *ignored) { @@ -1048,7 +1058,7 @@ test_options_validate__transproxy(void *ignored) ret = options_validate(tdata->old_opt, tdata->opt, tdata->def_opt, 0, &msg); tt_int_op(ret, OP_EQ, -1); -#if !defined(__FreeBSD__) && !defined( DARWIN ) +#ifndef KERNEL_MAY_SUPPORT_IPFW tt_str_op(msg, OP_EQ, "ipfw is a FreeBSD-specificand OS X/Darwin-specific " "feature."); #else @@ -1076,7 +1086,7 @@ test_options_validate__transproxy(void *ignored) tt_int_op(ret, OP_EQ, -1); tt_assert(!msg); #endif -#if defined(__FreeBSD__) || defined( DARWIN ) +#if defined(__FreeBSD_kernel__) || defined( DARWIN ) tdata = get_options_test_data("TransProxyType ipfw\n" "TransPort 127.0.0.1:123\n"); ret = options_validate(tdata->old_opt, tdata->opt, tdata->def_opt, 0, &msg); @@ -1715,6 +1725,10 @@ test_options_validate__reachable_addresses(void *ignored) tt_str_op(tdata->opt->ReachableAddresses->value, OP_EQ, "*:82"); tor_free(msg); +#define SERVERS_REACHABLE_MSG "Servers must be able to freely connect to" \ + " the rest of the Internet, so they must not set Reachable*Addresses or" \ + " FascistFirewall or FirewallPorts or ClientUseIPv4 0." + free_options_test_data(tdata); tdata = get_options_test_data("ReachableAddresses *:82\n" "ORListenAddress 127.0.0.1:5555\n" @@ -1726,9 +1740,7 @@ test_options_validate__reachable_addresses(void *ignored) ret = options_validate(tdata->old_opt, tdata->opt, tdata->def_opt, 0, &msg); tt_int_op(ret, OP_EQ, -1); - tt_str_op(msg, OP_EQ, "Servers must be able to freely connect to the rest of" - " the Internet, so they must not set Reachable*Addresses or" - " FascistFirewall."); + tt_str_op(msg, OP_EQ, SERVERS_REACHABLE_MSG); tor_free(msg); free_options_test_data(tdata); @@ -1742,9 +1754,7 @@ test_options_validate__reachable_addresses(void *ignored) ret = options_validate(tdata->old_opt, tdata->opt, tdata->def_opt, 0, &msg); tt_int_op(ret, OP_EQ, -1); - tt_str_op(msg, OP_EQ, "Servers must be able to freely connect to the rest of" - " the Internet, so they must not set Reachable*Addresses or" - " FascistFirewall."); + tt_str_op(msg, OP_EQ, SERVERS_REACHABLE_MSG); tor_free(msg); free_options_test_data(tdata); @@ -1758,11 +1768,107 @@ test_options_validate__reachable_addresses(void *ignored) ret = options_validate(tdata->old_opt, tdata->opt, tdata->def_opt, 0, &msg); tt_int_op(ret, OP_EQ, -1); - tt_str_op(msg, OP_EQ, "Servers must be able to freely connect to the rest of" - " the Internet, so they must not set Reachable*Addresses or" - " FascistFirewall."); + tt_str_op(msg, OP_EQ, SERVERS_REACHABLE_MSG); + tor_free(msg); + + free_options_test_data(tdata); + tdata = get_options_test_data("ClientUseIPv4 0\n" + "ORListenAddress 127.0.0.1:5555\n" + "ORPort 955\n" + "MaxClientCircuitsPending 1\n" + "ConnLimit 1\n" + "SchedulerHighWaterMark__ 42\n" + "SchedulerLowWaterMark__ 10\n"); + + ret = options_validate(tdata->old_opt, tdata->opt, tdata->def_opt, 0, &msg); + tt_int_op(ret, OP_EQ, -1); + tt_str_op(msg, OP_EQ, SERVERS_REACHABLE_MSG); + tor_free(msg); + + /* Test IPv4-only clients setting IPv6 preferences */ + +#define WARN_PLEASE_USE_IPV6_OR_LOG_MSG \ + "ClientPreferIPv6ORPort 1 is ignored unless tor is using IPv6. " \ + "Please set ClientUseIPv6 1, ClientUseIPv4 0, or configure bridges.\n" + +#define WARN_PLEASE_USE_IPV6_DIR_LOG_MSG \ + "ClientPreferIPv6DirPort 1 is ignored unless tor is using IPv6. " \ + "Please set ClientUseIPv6 1, ClientUseIPv4 0, or configure bridges.\n" + + free_options_test_data(tdata); + tdata = get_options_test_data(TEST_OPTIONS_DEFAULT_VALUES + "ClientUseIPv4 1\n" + "ClientUseIPv6 0\n" + "UseBridges 0\n" + "ClientPreferIPv6ORPort 1\n"); + + ret = options_validate(tdata->old_opt, tdata->opt, tdata->def_opt, 0, &msg); + tt_int_op(ret, OP_EQ, 0); + expect_log_msg(WARN_PLEASE_USE_IPV6_OR_LOG_MSG); + tor_free(msg); + + free_options_test_data(tdata); + tdata = get_options_test_data(TEST_OPTIONS_DEFAULT_VALUES + "ClientUseIPv4 1\n" + "ClientUseIPv6 0\n" + "UseBridges 0\n" + "ClientPreferIPv6DirPort 1\n"); + + ret = options_validate(tdata->old_opt, tdata->opt, tdata->def_opt, 0, &msg); + tt_int_op(ret, OP_EQ, 0); + expect_log_msg(WARN_PLEASE_USE_IPV6_DIR_LOG_MSG); tor_free(msg); + /* Now test an IPv4/IPv6 client setting IPv6 preferences */ + + free_options_test_data(tdata); + tdata = get_options_test_data(TEST_OPTIONS_DEFAULT_VALUES + "ClientUseIPv4 1\n" + "ClientUseIPv6 1\n" + "ClientPreferIPv6ORPort 1\n" + "ClientPreferIPv6DirPort 1\n"); + + ret = options_validate(tdata->old_opt, tdata->opt, tdata->def_opt, 0, &msg); + tt_int_op(ret, OP_EQ, 0); + tt_ptr_op(msg, OP_EQ, NULL); + + /* Now test an IPv6 client setting IPv6 preferences */ + + free_options_test_data(tdata); + tdata = get_options_test_data(TEST_OPTIONS_DEFAULT_VALUES + "ClientUseIPv6 1\n" + "ClientPreferIPv6ORPort 1\n" + "ClientPreferIPv6DirPort 1\n"); + + ret = options_validate(tdata->old_opt, tdata->opt, tdata->def_opt, 0, &msg); + tt_int_op(ret, OP_EQ, 0); + tt_ptr_op(msg, OP_EQ, NULL); + + /* And an implicit (IPv4 disabled) IPv6 client setting IPv6 preferences */ + + free_options_test_data(tdata); + tdata = get_options_test_data(TEST_OPTIONS_DEFAULT_VALUES + "ClientUseIPv4 0\n" + "ClientPreferIPv6ORPort 1\n" + "ClientPreferIPv6DirPort 1\n"); + + ret = options_validate(tdata->old_opt, tdata->opt, tdata->def_opt, 0, &msg); + tt_int_op(ret, OP_EQ, 0); + tt_ptr_op(msg, OP_EQ, NULL); + + /* And an implicit (bridge) client setting IPv6 preferences */ + + free_options_test_data(tdata); + tdata = get_options_test_data(TEST_OPTIONS_DEFAULT_VALUES + "UseBridges 1\n" + "Bridge 127.0.0.1:12345\n" + "ClientPreferIPv6ORPort 1\n" + "ClientPreferIPv6DirPort 1\n"); + + ret = options_validate(tdata->old_opt, tdata->opt, tdata->def_opt, 0, &msg); + tt_int_op(ret, OP_EQ, 0); + tt_ptr_op(msg, OP_EQ, NULL); + done: teardown_capture_of_logs(previous_log); free_options_test_data(tdata); @@ -1777,6 +1883,7 @@ test_options_validate__use_bridges(void *ignored) char *msg; options_test_data_t *tdata = get_options_test_data( "UseBridges 1\n" + "ClientUseIPv4 1\n" "ORListenAddress 127.0.0.1:5555\n" "ORPort 955\n" "MaxClientCircuitsPending 1\n" @@ -1841,7 +1948,6 @@ test_options_validate__use_bridges(void *ignored) done: NS_UNMOCK(geoip_get_country); - memarea_clear_freelist(); policies_free_all(); free_options_test_data(tdata); tor_free(msg); @@ -2079,7 +2185,6 @@ test_options_validate__publish_server_descriptor(void *ignored) done: teardown_capture_of_logs(previous_log); - memarea_clear_freelist(); policies_free_all(); free_options_test_data(tdata); tor_free(msg); @@ -2155,7 +2260,6 @@ test_options_validate__testing(void *ignored) done: escaped(NULL); // This will free the leaking memory from the previous escaped - memarea_clear_freelist(); policies_free_all(); free_options_test_data(tdata); tor_free(msg); @@ -2203,7 +2307,6 @@ test_options_validate__hidserv(void *ignored) done: teardown_capture_of_logs(previous_log); - memarea_clear_freelist(); policies_free_all(); free_options_test_data(tdata); tor_free(msg); @@ -2228,7 +2331,6 @@ test_options_validate__predicted_ports(void *ignored) done: teardown_capture_of_logs(previous_log); - memarea_clear_freelist(); policies_free_all(); free_options_test_data(tdata); tor_free(msg); @@ -2431,7 +2533,6 @@ test_options_validate__bandwidth(void *ignored) tor_free(msg); done: - memarea_clear_freelist(); policies_free_all(); free_options_test_data(tdata); tor_free(msg); @@ -2519,7 +2620,6 @@ test_options_validate__circuits(void *ignored) tor_free(msg); done: - memarea_clear_freelist(); policies_free_all(); teardown_capture_of_logs(previous_log); free_options_test_data(tdata); @@ -2553,7 +2653,6 @@ test_options_validate__port_forwarding(void *ignored) done: free_options_test_data(tdata); - memarea_clear_freelist(); policies_free_all(); tor_free(msg); } @@ -2583,7 +2682,6 @@ test_options_validate__tor2web(void *ignored) tor_free(msg); done: - memarea_clear_freelist(); policies_free_all(); free_options_test_data(tdata); tor_free(msg); @@ -2650,7 +2748,6 @@ test_options_validate__rend(void *ignored) tor_free(msg); done: - memarea_clear_freelist(); policies_free_all(); teardown_capture_of_logs(previous_log); free_options_test_data(tdata); @@ -2770,7 +2867,6 @@ test_options_validate__accounting(void *ignored) done: teardown_capture_of_logs(previous_log); - memarea_clear_freelist(); policies_free_all(); free_options_test_data(tdata); tor_free(msg); @@ -3102,7 +3198,6 @@ test_options_validate__proxy(void *ignored) done: teardown_capture_of_logs(previous_log); free_options_test_data(tdata); - memarea_clear_freelist(); policies_free_all(); // sandbox_free_getaddrinfo_cache(); tor_free(msg); @@ -3330,7 +3425,6 @@ test_options_validate__control(void *ignored) done: teardown_capture_of_logs(previous_log); - memarea_clear_freelist(); policies_free_all(); free_options_test_data(tdata); tor_free(msg); @@ -3403,7 +3497,6 @@ test_options_validate__families(void *ignored) done: teardown_capture_of_logs(previous_log); - memarea_clear_freelist(); policies_free_all(); free_options_test_data(tdata); tor_free(msg); @@ -3428,7 +3521,6 @@ test_options_validate__addr_policies(void *ignored) tor_free(msg); done: - memarea_clear_freelist(); policies_free_all(); free_options_test_data(tdata); tor_free(msg); @@ -3515,7 +3607,6 @@ test_options_validate__dir_auth(void *ignored) tor_free(msg); done: - memarea_clear_freelist(); policies_free_all(); teardown_capture_of_logs(previous_log); free_options_test_data(tdata); @@ -3641,7 +3732,6 @@ test_options_validate__transport(void *ignored) done: escaped(NULL); // This will free the leaking memory from the previous escaped - memarea_clear_freelist(); policies_free_all(); teardown_capture_of_logs(previous_log); free_options_test_data(tdata); @@ -3725,7 +3815,6 @@ test_options_validate__constrained_sockets(void *ignored) tor_free(msg); done: - memarea_clear_freelist(); policies_free_all(); teardown_capture_of_logs(previous_log); free_options_test_data(tdata); @@ -3945,7 +4034,6 @@ test_options_validate__v3_auth(void *ignored) tor_free(msg); done: - memarea_clear_freelist(); policies_free_all(); teardown_capture_of_logs(previous_log); free_options_test_data(tdata); @@ -3980,7 +4068,6 @@ test_options_validate__virtual_addr(void *ignored) done: escaped(NULL); // This will free the leaking memory from the previous escaped - memarea_clear_freelist(); policies_free_all(); free_options_test_data(tdata); tor_free(msg); @@ -4022,7 +4109,6 @@ test_options_validate__exits(void *ignored) tor_free(msg); done: - memarea_clear_freelist(); policies_free_all(); teardown_capture_of_logs(previous_log); free_options_test_data(tdata); @@ -4191,7 +4277,6 @@ test_options_validate__testing_options(void *ignored) tor_free(msg); done: - memarea_clear_freelist(); policies_free_all(); teardown_capture_of_logs(previous_log); free_options_test_data(tdata); @@ -4245,7 +4330,6 @@ test_options_validate__accel(void *ignored) tor_free(msg); done: - memarea_clear_freelist(); policies_free_all(); free_options_test_data(tdata); tor_free(msg); diff --git a/src/test/test_policy.c b/src/test/test_policy.c index 794978fc42..48e82551e3 100644 --- a/src/test/test_policy.c +++ b/src/test/test_policy.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2013-2015, The Tor Project, Inc. */ +/* Copyright (c) 2013-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #include "or.h" @@ -1129,6 +1129,709 @@ test_policies_getinfo_helper_policies(void *arg) #undef TEST_IPV4_ADDR #undef TEST_IPV6_ADDR +#define TEST_IPV4_ADDR_STR "1.2.3.4" +#define TEST_IPV6_ADDR_STR "[1002::4567]" +#define REJECT_IPv4_FINAL_STR "reject 0.0.0.0/0:*" +#define REJECT_IPv6_FINAL_STR "reject [::]/0:*" + +#define OTHER_IPV4_ADDR_STR "6.7.8.9" +#define OTHER_IPV6_ADDR_STR "[afff::]" + +/** Run unit tests for fascist_firewall_allows_address */ +static void +test_policies_fascist_firewall_allows_address(void *arg) +{ + (void)arg; + tor_addr_t ipv4_addr, ipv6_addr, r_ipv4_addr, r_ipv6_addr; + tor_addr_t n_ipv4_addr, n_ipv6_addr; + const uint16_t port = 1234; + smartlist_t *policy = NULL; + smartlist_t *e_policy = NULL; + addr_policy_t *item = NULL; + int malformed_list = 0; + + /* Setup the options and the items in the policies */ + memset(&mock_options, 0, sizeof(or_options_t)); + MOCK(get_options, mock_get_options); + + policy = smartlist_new(); + item = router_parse_addr_policy_item_from_string("accept " + TEST_IPV4_ADDR_STR ":*", + ADDR_POLICY_ACCEPT, + &malformed_list); + tt_assert(item); + tt_assert(!malformed_list); + smartlist_add(policy, item); + item = router_parse_addr_policy_item_from_string("accept " + TEST_IPV6_ADDR_STR, + ADDR_POLICY_ACCEPT, + &malformed_list); + tt_assert(item); + tt_assert(!malformed_list); + smartlist_add(policy, item); + /* Normally, policy_expand_unspec would do this for us */ + item = router_parse_addr_policy_item_from_string(REJECT_IPv4_FINAL_STR, + ADDR_POLICY_ACCEPT, + &malformed_list); + tt_assert(item); + tt_assert(!malformed_list); + smartlist_add(policy, item); + item = router_parse_addr_policy_item_from_string(REJECT_IPv6_FINAL_STR, + ADDR_POLICY_ACCEPT, + &malformed_list); + tt_assert(item); + tt_assert(!malformed_list); + smartlist_add(policy, item); + item = NULL; + + e_policy = smartlist_new(); + + /* + char *polstr = policy_dump_to_string(policy, 1, 1); + printf("%s\n", polstr); + tor_free(polstr); + */ + + /* Parse the addresses */ + tor_addr_parse(&ipv4_addr, TEST_IPV4_ADDR_STR); + tor_addr_parse(&ipv6_addr, TEST_IPV6_ADDR_STR); + tor_addr_parse(&r_ipv4_addr, OTHER_IPV4_ADDR_STR); + tor_addr_parse(&r_ipv6_addr, OTHER_IPV6_ADDR_STR); + tor_addr_make_null(&n_ipv4_addr, AF_INET); + tor_addr_make_null(&n_ipv6_addr, AF_INET6); + + /* Test the function's address matching with IPv4 and IPv6 on */ + memset(&mock_options, 0, sizeof(or_options_t)); + mock_options.ClientUseIPv4 = 1; + mock_options.ClientUseIPv6 = 1; + mock_options.UseBridges = 0; + + tt_assert(fascist_firewall_allows_address(&ipv4_addr, port, policy, 0, 0) + == 1); + tt_assert(fascist_firewall_allows_address(&ipv6_addr, port, policy, 0, 0) + == 1); + tt_assert(fascist_firewall_allows_address(&r_ipv4_addr, port, policy, 0, 0) + == 0); + tt_assert(fascist_firewall_allows_address(&r_ipv6_addr, port, policy, 0, 0) + == 0); + + /* Preferring IPv4 */ + tt_assert(fascist_firewall_allows_address(&ipv4_addr, port, policy, 1, 0) + == 1); + tt_assert(fascist_firewall_allows_address(&ipv6_addr, port, policy, 1, 0) + == 0); + tt_assert(fascist_firewall_allows_address(&r_ipv4_addr, port, policy, 1, 0) + == 0); + tt_assert(fascist_firewall_allows_address(&r_ipv6_addr, port, policy, 1, 0) + == 0); + + /* Preferring IPv6 */ + tt_assert(fascist_firewall_allows_address(&ipv4_addr, port, policy, 1, 1) + == 0); + tt_assert(fascist_firewall_allows_address(&ipv6_addr, port, policy, 1, 1) + == 1); + tt_assert(fascist_firewall_allows_address(&r_ipv4_addr, port, policy, 1, 1) + == 0); + tt_assert(fascist_firewall_allows_address(&r_ipv6_addr, port, policy, 1, 1) + == 0); + + /* Test the function's address matching with UseBridges on */ + memset(&mock_options, 0, sizeof(or_options_t)); + mock_options.ClientUseIPv4 = 1; + mock_options.ClientUseIPv6 = 1; + mock_options.UseBridges = 1; + + tt_assert(fascist_firewall_allows_address(&ipv4_addr, port, policy, 0, 0) + == 1); + tt_assert(fascist_firewall_allows_address(&ipv6_addr, port, policy, 0, 0) + == 1); + tt_assert(fascist_firewall_allows_address(&r_ipv4_addr, port, policy, 0, 0) + == 0); + tt_assert(fascist_firewall_allows_address(&r_ipv6_addr, port, policy, 0, 0) + == 0); + + /* Preferring IPv4 */ + tt_assert(fascist_firewall_allows_address(&ipv4_addr, port, policy, 1, 0) + == 1); + tt_assert(fascist_firewall_allows_address(&ipv6_addr, port, policy, 1, 0) + == 0); + tt_assert(fascist_firewall_allows_address(&r_ipv4_addr, port, policy, 1, 0) + == 0); + tt_assert(fascist_firewall_allows_address(&r_ipv6_addr, port, policy, 1, 0) + == 0); + + /* Preferring IPv6 */ + tt_assert(fascist_firewall_allows_address(&ipv4_addr, port, policy, 1, 1) + == 0); + tt_assert(fascist_firewall_allows_address(&ipv6_addr, port, policy, 1, 1) + == 1); + tt_assert(fascist_firewall_allows_address(&r_ipv4_addr, port, policy, 1, 1) + == 0); + tt_assert(fascist_firewall_allows_address(&r_ipv6_addr, port, policy, 1, 1) + == 0); + + /* bridge clients always use IPv6, regardless of ClientUseIPv6 */ + mock_options.ClientUseIPv4 = 1; + mock_options.ClientUseIPv6 = 0; + tt_assert(fascist_firewall_allows_address(&ipv4_addr, port, policy, 0, 0) + == 1); + tt_assert(fascist_firewall_allows_address(&ipv6_addr, port, policy, 0, 0) + == 1); + tt_assert(fascist_firewall_allows_address(&r_ipv4_addr, port, policy, 0, 0) + == 0); + tt_assert(fascist_firewall_allows_address(&r_ipv6_addr, port, policy, 0, 0) + == 0); + + /* Test the function's address matching with IPv4 on */ + memset(&mock_options, 0, sizeof(or_options_t)); + mock_options.ClientUseIPv4 = 1; + mock_options.ClientUseIPv6 = 0; + mock_options.UseBridges = 0; + + tt_assert(fascist_firewall_allows_address(&ipv4_addr, port, policy, 0, 0) + == 1); + tt_assert(fascist_firewall_allows_address(&ipv6_addr, port, policy, 0, 0) + == 0); + tt_assert(fascist_firewall_allows_address(&r_ipv4_addr, port, policy, 0, 0) + == 0); + tt_assert(fascist_firewall_allows_address(&r_ipv6_addr, port, policy, 0, 0) + == 0); + + /* Test the function's address matching with IPv6 on */ + memset(&mock_options, 0, sizeof(or_options_t)); + mock_options.ClientUseIPv4 = 0; + mock_options.ClientUseIPv6 = 1; + mock_options.UseBridges = 0; + + tt_assert(fascist_firewall_allows_address(&ipv4_addr, port, policy, 0, 0) + == 0); + tt_assert(fascist_firewall_allows_address(&ipv6_addr, port, policy, 0, 0) + == 1); + tt_assert(fascist_firewall_allows_address(&r_ipv4_addr, port, policy, 0, 0) + == 0); + tt_assert(fascist_firewall_allows_address(&r_ipv6_addr, port, policy, 0, 0) + == 0); + + /* Test the function's address matching with ClientUseIPv4 0. + * This means "use IPv6" regardless of the other settings. */ + memset(&mock_options, 0, sizeof(or_options_t)); + mock_options.ClientUseIPv4 = 0; + mock_options.ClientUseIPv6 = 0; + mock_options.UseBridges = 0; + + tt_assert(fascist_firewall_allows_address(&ipv4_addr, port, policy, 0, 0) + == 0); + tt_assert(fascist_firewall_allows_address(&ipv6_addr, port, policy, 0, 0) + == 1); + tt_assert(fascist_firewall_allows_address(&r_ipv4_addr, port, policy, 0, 0) + == 0); + tt_assert(fascist_firewall_allows_address(&r_ipv6_addr, port, policy, 0, 0) + == 0); + + /* Test the function's address matching for unusual inputs */ + memset(&mock_options, 0, sizeof(or_options_t)); + mock_options.ClientUseIPv4 = 1; + mock_options.ClientUseIPv6 = 1; + mock_options.UseBridges = 1; + + /* NULL and tor_addr_is_null addresses are rejected */ + tt_assert(fascist_firewall_allows_address(NULL, port, policy, 0, 0) == 0); + tt_assert(fascist_firewall_allows_address(&n_ipv4_addr, port, policy, 0, 0) + == 0); + tt_assert(fascist_firewall_allows_address(&n_ipv6_addr, port, policy, 0, 0) + == 0); + + /* zero ports are rejected */ + tt_assert(fascist_firewall_allows_address(&ipv4_addr, 0, policy, 0, 0) + == 0); + tt_assert(fascist_firewall_allows_address(&ipv6_addr, 0, policy, 0, 0) + == 0); + + /* NULL and empty policies accept everything */ + tt_assert(fascist_firewall_allows_address(&ipv4_addr, port, NULL, 0, 0) + == 1); + tt_assert(fascist_firewall_allows_address(&ipv6_addr, port, NULL, 0, 0) + == 1); + tt_assert(fascist_firewall_allows_address(&ipv4_addr, port, e_policy, 0, 0) + == 1); + tt_assert(fascist_firewall_allows_address(&ipv6_addr, port, e_policy, 0, 0) + == 1); + + done: + addr_policy_free(item); + addr_policy_list_free(policy); + addr_policy_list_free(e_policy); + UNMOCK(get_options); +} + +#undef REJECT_IPv4_FINAL_STR +#undef REJECT_IPv6_FINAL_STR +#undef OTHER_IPV4_ADDR_STR +#undef OTHER_IPV6_ADDR_STR + +#define TEST_IPV4_OR_PORT 1234 +#define TEST_IPV4_DIR_PORT 2345 +#define TEST_IPV6_OR_PORT 61234 +#define TEST_IPV6_DIR_PORT 62345 + +/* Check that fascist_firewall_choose_address_rs() returns the expected + * results. */ +#define CHECK_CHOSEN_ADDR_RS(fake_rs, fw_connection, pref_only, expect_rv, \ + expect_ap) \ + STMT_BEGIN \ + tor_addr_port_t chosen_rs_ap; \ + tor_addr_make_null(&chosen_rs_ap.addr, AF_INET); \ + chosen_rs_ap.port = 0; \ + tt_int_op(fascist_firewall_choose_address_rs(&(fake_rs), \ + (fw_connection), \ + (pref_only), \ + &chosen_rs_ap), \ + OP_EQ, (expect_rv)); \ + tt_assert(tor_addr_eq(&(expect_ap).addr, &chosen_rs_ap.addr)); \ + tt_int_op((expect_ap).port, OP_EQ, chosen_rs_ap.port); \ + STMT_END + +/* Check that fascist_firewall_choose_address_node() returns the expected + * results. */ +#define CHECK_CHOSEN_ADDR_NODE(fake_node, fw_connection, pref_only, \ + expect_rv, expect_ap) \ + STMT_BEGIN \ + tor_addr_port_t chosen_node_ap; \ + tor_addr_make_null(&chosen_node_ap.addr, AF_INET); \ + chosen_node_ap.port = 0; \ + tt_int_op(fascist_firewall_choose_address_node(&(fake_node), \ + (fw_connection), \ + (pref_only), \ + &chosen_node_ap), \ + OP_EQ, (expect_rv)); \ + tt_assert(tor_addr_eq(&(expect_ap).addr, &chosen_node_ap.addr)); \ + tt_int_op((expect_ap).port, OP_EQ, chosen_node_ap.port); \ + STMT_END + +/* Check that fascist_firewall_choose_address_rs and + * fascist_firewall_choose_address_node() both return the expected results. */ +#define CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, fw_connection, pref_only, \ + expect_rv, expect_ap) \ + STMT_BEGIN \ + CHECK_CHOSEN_ADDR_RS(fake_rs, fw_connection, pref_only, expect_rv, \ + expect_ap); \ + CHECK_CHOSEN_ADDR_NODE(fake_node, fw_connection, pref_only, expect_rv, \ + expect_ap); \ + STMT_END + +/** Run unit tests for fascist_firewall_choose_address */ +static void +test_policies_fascist_firewall_choose_address(void *arg) +{ + (void)arg; + tor_addr_port_t ipv4_or_ap, ipv4_dir_ap, ipv6_or_ap, ipv6_dir_ap; + tor_addr_port_t n_ipv4_ap, n_ipv6_ap; + + /* Setup the options */ + memset(&mock_options, 0, sizeof(or_options_t)); + MOCK(get_options, mock_get_options); + + /* Parse the addresses */ + tor_addr_parse(&ipv4_or_ap.addr, TEST_IPV4_ADDR_STR); + ipv4_or_ap.port = TEST_IPV4_OR_PORT; + tor_addr_parse(&ipv4_dir_ap.addr, TEST_IPV4_ADDR_STR); + ipv4_dir_ap.port = TEST_IPV4_DIR_PORT; + + tor_addr_parse(&ipv6_or_ap.addr, TEST_IPV6_ADDR_STR); + ipv6_or_ap.port = TEST_IPV6_OR_PORT; + tor_addr_parse(&ipv6_dir_ap.addr, TEST_IPV6_ADDR_STR); + ipv6_dir_ap.port = TEST_IPV6_DIR_PORT; + + tor_addr_make_null(&n_ipv4_ap.addr, AF_INET); + n_ipv4_ap.port = 0; + tor_addr_make_null(&n_ipv6_ap.addr, AF_INET6); + n_ipv6_ap.port = 0; + + /* Sanity check fascist_firewall_choose_address with IPv4 and IPv6 on */ + memset(&mock_options, 0, sizeof(or_options_t)); + mock_options.ClientUseIPv4 = 1; + mock_options.ClientUseIPv6 = 1; + mock_options.UseBridges = 0; + + /* Prefer IPv4 */ + tt_assert(fascist_firewall_choose_address(&ipv4_or_ap, &ipv6_or_ap, 1, + FIREWALL_OR_CONNECTION, 0, 0) + == &ipv4_or_ap); + tt_assert(fascist_firewall_choose_address(&ipv4_or_ap, &ipv6_or_ap, 1, + FIREWALL_OR_CONNECTION, 1, 0) + == &ipv4_or_ap); + tt_assert(fascist_firewall_choose_address(&ipv4_dir_ap, &ipv6_dir_ap, 1, + FIREWALL_DIR_CONNECTION, 0, 0) + == &ipv4_dir_ap); + tt_assert(fascist_firewall_choose_address(&ipv4_dir_ap, &ipv6_dir_ap, 1, + FIREWALL_DIR_CONNECTION, 1, 0) + == &ipv4_dir_ap); + + /* Prefer IPv6 */ + tt_assert(fascist_firewall_choose_address(&ipv4_or_ap, &ipv6_or_ap, 0, + FIREWALL_OR_CONNECTION, 0, 1) + == &ipv6_or_ap); + tt_assert(fascist_firewall_choose_address(&ipv4_or_ap, &ipv6_or_ap, 0, + FIREWALL_OR_CONNECTION, 1, 1) + == &ipv6_or_ap); + tt_assert(fascist_firewall_choose_address(&ipv4_dir_ap, &ipv6_dir_ap, 0, + FIREWALL_DIR_CONNECTION, 0, 1) + == &ipv6_dir_ap); + tt_assert(fascist_firewall_choose_address(&ipv4_dir_ap, &ipv6_dir_ap, 0, + FIREWALL_DIR_CONNECTION, 1, 1) + == &ipv6_dir_ap); + + /* Unusual inputs */ + + /* null preferred OR addresses */ + tt_assert(fascist_firewall_choose_address(&ipv4_or_ap, &n_ipv6_ap, 0, + FIREWALL_OR_CONNECTION, 0, 1) + == &ipv4_or_ap); + tt_assert(fascist_firewall_choose_address(&n_ipv4_ap, &ipv6_or_ap, 1, + FIREWALL_OR_CONNECTION, 0, 0) + == &ipv6_or_ap); + + /* null both OR addresses */ + tt_assert(fascist_firewall_choose_address(&n_ipv4_ap, &n_ipv6_ap, 0, + FIREWALL_OR_CONNECTION, 0, 1) + == NULL); + tt_assert(fascist_firewall_choose_address(&n_ipv4_ap, &n_ipv6_ap, 1, + FIREWALL_OR_CONNECTION, 0, 0) + == NULL); + + /* null preferred Dir addresses */ + tt_assert(fascist_firewall_choose_address(&ipv4_dir_ap, &n_ipv6_ap, 0, + FIREWALL_DIR_CONNECTION, 0, 1) + == &ipv4_dir_ap); + tt_assert(fascist_firewall_choose_address(&n_ipv4_ap, &ipv6_dir_ap, 1, + FIREWALL_DIR_CONNECTION, 0, 0) + == &ipv6_dir_ap); + + /* null both Dir addresses */ + tt_assert(fascist_firewall_choose_address(&n_ipv4_ap, &n_ipv6_ap, 0, + FIREWALL_DIR_CONNECTION, 0, 1) + == NULL); + tt_assert(fascist_firewall_choose_address(&n_ipv4_ap, &n_ipv6_ap, 1, + FIREWALL_DIR_CONNECTION, 0, 0) + == NULL); + + /* Prefer IPv4 but want IPv6 (contradictory) */ + tt_assert(fascist_firewall_choose_address(&ipv4_or_ap, &ipv6_or_ap, 0, + FIREWALL_OR_CONNECTION, 0, 0) + == &ipv4_or_ap); + tt_assert(fascist_firewall_choose_address(&ipv4_or_ap, &ipv6_or_ap, 0, + FIREWALL_OR_CONNECTION, 1, 0) + == &ipv4_or_ap); + + /* Prefer IPv6 but want IPv4 (contradictory) */ + tt_assert(fascist_firewall_choose_address(&ipv4_or_ap, &ipv6_or_ap, 1, + FIREWALL_OR_CONNECTION, 0, 1) + == &ipv6_or_ap); + tt_assert(fascist_firewall_choose_address(&ipv4_or_ap, &ipv6_or_ap, 1, + FIREWALL_OR_CONNECTION, 1, 1) + == &ipv6_or_ap); + + /* Make a fake rs. There will be no corresponding node. + * This is what happens when there's no consensus and we're bootstrapping + * from authorities / fallbacks. */ + routerstatus_t fake_rs; + memset(&fake_rs, 0, sizeof(routerstatus_t)); + /* In a routerstatus, the OR and Dir addresses are the same */ + fake_rs.addr = tor_addr_to_ipv4h(&ipv4_or_ap.addr); + fake_rs.or_port = ipv4_or_ap.port; + fake_rs.dir_port = ipv4_dir_ap.port; + + tor_addr_copy(&fake_rs.ipv6_addr, &ipv6_or_ap.addr); + fake_rs.ipv6_orport = ipv6_or_ap.port; + /* In a routerstatus, the IPv4 and IPv6 DirPorts are the same.*/ + ipv6_dir_ap.port = TEST_IPV4_DIR_PORT; + + /* Make a fake node. Even though it contains the fake_rs, a lookup won't + * find the node from the rs, because they're not in the hash table. */ + node_t fake_node; + memset(&fake_node, 0, sizeof(node_t)); + fake_node.rs = &fake_rs; + + /* Choose an address with IPv4 and IPv6 on */ + memset(&mock_options, 0, sizeof(or_options_t)); + mock_options.ClientUseIPv4 = 1; + mock_options.ClientUseIPv6 = 1; + mock_options.UseBridges = 0; + + /* Preferring IPv4 */ + mock_options.ClientPreferIPv6ORPort = 0; + mock_options.ClientPreferIPv6DirPort = 0; + /* Simulate the initialisation of fake_node.ipv6_preferred */ + fake_node.ipv6_preferred = fascist_firewall_prefer_ipv6_orport( + &mock_options); + + CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_OR_CONNECTION, 0, 1, + ipv4_or_ap); + CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_OR_CONNECTION, 1, 1, + ipv4_or_ap); + CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_DIR_CONNECTION, 0, 1, + ipv4_dir_ap); + CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_DIR_CONNECTION, 1, 1, + ipv4_dir_ap); + + /* Auto (Preferring IPv4) */ + mock_options.ClientPreferIPv6ORPort = -1; + mock_options.ClientPreferIPv6DirPort = -1; + /* Simulate the initialisation of fake_node.ipv6_preferred */ + fake_node.ipv6_preferred = fascist_firewall_prefer_ipv6_orport( + &mock_options); + + CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_OR_CONNECTION, 0, 1, + ipv4_or_ap); + CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_OR_CONNECTION, 1, 1, + ipv4_or_ap); + CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_DIR_CONNECTION, 0, 1, + ipv4_dir_ap); + CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_DIR_CONNECTION, 1, 1, + ipv4_dir_ap); + + /* Preferring IPv6 */ + mock_options.ClientPreferIPv6ORPort = 1; + mock_options.ClientPreferIPv6DirPort = 1; + /* Simulate the initialisation of fake_node.ipv6_preferred */ + fake_node.ipv6_preferred = fascist_firewall_prefer_ipv6_orport( + &mock_options); + + CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_OR_CONNECTION, 0, 1, + ipv6_or_ap); + CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_OR_CONNECTION, 1, 1, + ipv6_or_ap); + CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_DIR_CONNECTION, 0, 1, + ipv6_dir_ap); + CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_DIR_CONNECTION, 1, 1, + ipv6_dir_ap); + + /* Preferring IPv4 OR / IPv6 Dir */ + mock_options.ClientPreferIPv6ORPort = 0; + mock_options.ClientPreferIPv6DirPort = 1; + /* Simulate the initialisation of fake_node.ipv6_preferred */ + fake_node.ipv6_preferred = fascist_firewall_prefer_ipv6_orport( + &mock_options); + + CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_OR_CONNECTION, 0, 1, + ipv4_or_ap); + CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_OR_CONNECTION, 1, 1, + ipv4_or_ap); + CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_DIR_CONNECTION, 0, 1, + ipv6_dir_ap); + CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_DIR_CONNECTION, 1, 1, + ipv6_dir_ap); + + /* Preferring IPv6 OR / IPv4 Dir */ + mock_options.ClientPreferIPv6ORPort = 1; + mock_options.ClientPreferIPv6DirPort = 0; + /* Simulate the initialisation of fake_node.ipv6_preferred */ + fake_node.ipv6_preferred = fascist_firewall_prefer_ipv6_orport( + &mock_options); + + CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_OR_CONNECTION, 0, 1, + ipv6_or_ap); + CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_OR_CONNECTION, 1, 1, + ipv6_or_ap); + CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_DIR_CONNECTION, 0, 1, + ipv4_dir_ap); + CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_DIR_CONNECTION, 1, 1, + ipv4_dir_ap); + + /* Choose an address with UseBridges on */ + memset(&mock_options, 0, sizeof(or_options_t)); + mock_options.UseBridges = 1; + mock_options.ClientUseIPv4 = 1; + mock_options.ClientUseIPv6 = 1; + + /* Preferring IPv4 */ + mock_options.ClientPreferIPv6ORPort = 0; + mock_options.ClientPreferIPv6DirPort = 0; + /* Simulate the initialisation of fake_node.ipv6_preferred */ + fake_node.ipv6_preferred = fascist_firewall_prefer_ipv6_orport( + &mock_options); + + CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_OR_CONNECTION, 0, 1, + ipv4_or_ap); + CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_OR_CONNECTION, 1, 1, + ipv4_or_ap); + CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_DIR_CONNECTION, 0, 1, + ipv4_dir_ap); + CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_DIR_CONNECTION, 1, 1, + ipv4_dir_ap); + + /* Auto: + * - bridge clients prefer the configured bridge OR address from the node, + * (the configured address family sets node.ipv6_preferred) + * - other clients prefer IPv4 OR by default (see above), + * - all clients, including bridge clients, prefer IPv4 Dir by default. + */ + mock_options.ClientPreferIPv6ORPort = -1; + mock_options.ClientPreferIPv6DirPort = -1; + + /* Simulate the initialisation of fake_node.ipv6_preferred with a bridge + * configured with an IPv4 address */ + fake_node.ipv6_preferred = 0; + CHECK_CHOSEN_ADDR_NODE(fake_node, FIREWALL_OR_CONNECTION, 0, 1, ipv4_or_ap); + CHECK_CHOSEN_ADDR_NODE(fake_node, FIREWALL_OR_CONNECTION, 1, 1, ipv4_or_ap); + CHECK_CHOSEN_ADDR_NODE(fake_node, FIREWALL_DIR_CONNECTION, 0, 1, + ipv4_dir_ap); + CHECK_CHOSEN_ADDR_NODE(fake_node, FIREWALL_DIR_CONNECTION, 1, 1, + ipv4_dir_ap); + + /* Simulate the initialisation of fake_node.ipv6_preferred with a bridge + * configured with an IPv6 address */ + fake_node.ipv6_preferred = 1; + CHECK_CHOSEN_ADDR_NODE(fake_node, FIREWALL_OR_CONNECTION, 0, 1, ipv6_or_ap); + CHECK_CHOSEN_ADDR_NODE(fake_node, FIREWALL_OR_CONNECTION, 1, 1, ipv6_or_ap); + CHECK_CHOSEN_ADDR_NODE(fake_node, FIREWALL_DIR_CONNECTION, 0, 1, + ipv4_dir_ap); + CHECK_CHOSEN_ADDR_NODE(fake_node, FIREWALL_DIR_CONNECTION, 1, 1, + ipv4_dir_ap); + + /* When a rs has no node, it defaults to IPv4 under auto. */ + CHECK_CHOSEN_ADDR_RS(fake_rs, FIREWALL_OR_CONNECTION, 0, 1, ipv4_or_ap); + CHECK_CHOSEN_ADDR_RS(fake_rs, FIREWALL_OR_CONNECTION, 1, 1, ipv4_or_ap); + CHECK_CHOSEN_ADDR_RS(fake_rs, FIREWALL_DIR_CONNECTION, 0, 1, ipv4_dir_ap); + CHECK_CHOSEN_ADDR_RS(fake_rs, FIREWALL_DIR_CONNECTION, 1, 1, ipv4_dir_ap); + + /* Preferring IPv6 */ + mock_options.ClientPreferIPv6ORPort = 1; + mock_options.ClientPreferIPv6DirPort = 1; + /* Simulate the initialisation of fake_node.ipv6_preferred */ + fake_node.ipv6_preferred = fascist_firewall_prefer_ipv6_orport( + &mock_options); + + CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_OR_CONNECTION, 0, 1, + ipv6_or_ap); + CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_OR_CONNECTION, 1, 1, + ipv6_or_ap); + CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_DIR_CONNECTION, 0, 1, + ipv6_dir_ap); + CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_DIR_CONNECTION, 1, 1, + ipv6_dir_ap); + + /* In the default configuration (Auto / IPv6 off), bridge clients should + * use both IPv4 and IPv6, but only prefer IPv6 for bridges configured with + * an IPv6 address, regardless of ClientUseIPv6. (See above.) */ + mock_options.ClientUseIPv6 = 0; + mock_options.ClientPreferIPv6ORPort = -1; + mock_options.ClientPreferIPv6DirPort = -1; + /* Simulate the initialisation of fake_node.ipv6_preferred with a bridge + * configured with an IPv4 address */ + fake_node.ipv6_preferred = 0; + CHECK_CHOSEN_ADDR_NODE(fake_node, FIREWALL_OR_CONNECTION, 0, 1, ipv4_or_ap); + CHECK_CHOSEN_ADDR_NODE(fake_node, FIREWALL_OR_CONNECTION, 1, 1, ipv4_or_ap); + CHECK_CHOSEN_ADDR_NODE(fake_node, FIREWALL_DIR_CONNECTION, 0, 1, + ipv4_dir_ap); + CHECK_CHOSEN_ADDR_NODE(fake_node, FIREWALL_DIR_CONNECTION, 1, 1, + ipv4_dir_ap); + + /* Simulate the initialisation of fake_node.ipv6_preferred with a bridge + * configured with an IPv6 address */ + fake_node.ipv6_preferred = 1; + CHECK_CHOSEN_ADDR_NODE(fake_node, FIREWALL_OR_CONNECTION, 0, 1, ipv6_or_ap); + CHECK_CHOSEN_ADDR_NODE(fake_node, FIREWALL_OR_CONNECTION, 1, 1, ipv6_or_ap); + CHECK_CHOSEN_ADDR_NODE(fake_node, FIREWALL_DIR_CONNECTION, 0, 1, + ipv4_dir_ap); + CHECK_CHOSEN_ADDR_NODE(fake_node, FIREWALL_DIR_CONNECTION, 1, 1, + ipv4_dir_ap); + + /* When a rs has no node, it defaults to IPv4 under auto. */ + CHECK_CHOSEN_ADDR_RS(fake_rs, FIREWALL_OR_CONNECTION, 0, 1, ipv4_or_ap); + CHECK_CHOSEN_ADDR_RS(fake_rs, FIREWALL_OR_CONNECTION, 1, 1, ipv4_or_ap); + CHECK_CHOSEN_ADDR_RS(fake_rs, FIREWALL_DIR_CONNECTION, 0, 1, ipv4_dir_ap); + CHECK_CHOSEN_ADDR_RS(fake_rs, FIREWALL_DIR_CONNECTION, 1, 1, ipv4_dir_ap); + + /* Choose an address with IPv4 on */ + memset(&mock_options, 0, sizeof(or_options_t)); + mock_options.ClientUseIPv4 = 1; + mock_options.ClientUseIPv6 = 0; + /* Simulate the initialisation of fake_node.ipv6_preferred */ + fake_node.ipv6_preferred = fascist_firewall_prefer_ipv6_orport( + &mock_options); + + CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_OR_CONNECTION, 0, 1, + ipv4_or_ap); + CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_OR_CONNECTION, 1, 1, + ipv4_or_ap); + CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_DIR_CONNECTION, 0, 1, + ipv4_dir_ap); + CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_DIR_CONNECTION, 1, 1, + ipv4_dir_ap); + + /* Choose an address with IPv6 on */ + memset(&mock_options, 0, sizeof(or_options_t)); + mock_options.ClientUseIPv4 = 0; + mock_options.ClientUseIPv6 = 1; + /* Simulate the initialisation of fake_node.ipv6_preferred */ + fake_node.ipv6_preferred = fascist_firewall_prefer_ipv6_orport( + &mock_options); + + CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_OR_CONNECTION, 0, 1, + ipv6_or_ap); + CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_OR_CONNECTION, 1, 1, + ipv6_or_ap); + CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_DIR_CONNECTION, 0, 1, + ipv6_dir_ap); + CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_DIR_CONNECTION, 1, 1, + ipv6_dir_ap); + + /* Choose an address with ClientUseIPv4 0. + * This means "use IPv6" regardless of the other settings. */ + memset(&mock_options, 0, sizeof(or_options_t)); + mock_options.ClientUseIPv4 = 0; + mock_options.ClientUseIPv6 = 0; + /* Simulate the initialisation of fake_node.ipv6_preferred */ + fake_node.ipv6_preferred = fascist_firewall_prefer_ipv6_orport( + &mock_options); + + CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_OR_CONNECTION, 0, 1, + ipv6_or_ap); + CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_OR_CONNECTION, 1, 1, + ipv6_or_ap); + CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_DIR_CONNECTION, 0, 1, + ipv6_dir_ap); + CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_DIR_CONNECTION, 1, 1, + ipv6_dir_ap); + + /* Choose an address with ORPort_set 1 (server mode). + * This means "use IPv4" regardless of the other settings. */ + memset(&mock_options, 0, sizeof(or_options_t)); + mock_options.ORPort_set = 1; + mock_options.ClientUseIPv4 = 0; + mock_options.ClientUseIPv6 = 1; + mock_options.ClientPreferIPv6ORPort = 1; + mock_options.ClientPreferIPv6DirPort = 1; + + /* Simulate the initialisation of fake_node.ipv6_preferred */ + fake_node.ipv6_preferred = fascist_firewall_prefer_ipv6_orport( + &mock_options); + + CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_OR_CONNECTION, 0, 1, + ipv4_or_ap); + CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_OR_CONNECTION, 1, 1, + ipv4_or_ap); + CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_DIR_CONNECTION, 0, 1, + ipv4_dir_ap); + CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_DIR_CONNECTION, 1, 1, + ipv4_dir_ap); + + done: + UNMOCK(get_options); +} + +#undef TEST_IPV4_ADDR_STR +#undef TEST_IPV6_ADDR_STR +#undef TEST_IPV4_OR_PORT +#undef TEST_IPV4_DIR_PORT +#undef TEST_IPV6_OR_PORT +#undef TEST_IPV6_DIR_PORT + +#undef CHECK_CHOSEN_ADDR_RS +#undef CHECK_CHOSEN_ADDR_NODE +#undef CHECK_CHOSEN_ADDR_RN + struct testcase_t policy_tests[] = { { "router_dump_exit_policy_to_string", test_dump_exit_policy_to_string, 0, NULL, NULL }, @@ -1139,6 +1842,10 @@ struct testcase_t policy_tests[] = { { "reject_interface_address", test_policies_reject_interface_address, 0, NULL, NULL }, { "reject_port_address", test_policies_reject_port_address, 0, NULL, NULL }, + { "fascist_firewall_allows_address", + test_policies_fascist_firewall_allows_address, 0, NULL, NULL }, + { "fascist_firewall_choose_address", + test_policies_fascist_firewall_choose_address, 0, NULL, NULL }, END_OF_TESTCASES }; diff --git a/src/test/test_procmon.c b/src/test/test_procmon.c index 2855178788..9e63fc006d 100644 --- a/src/test/test_procmon.c +++ b/src/test/test_procmon.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2010-2015, The Tor Project, Inc. */ +/* Copyright (c) 2010-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #define PROCMON_PRIVATE diff --git a/src/test/test_pt.c b/src/test/test_pt.c index 6c9aefc487..ab8447dcd7 100644 --- a/src/test/test_pt.c +++ b/src/test/test_pt.c @@ -1,6 +1,6 @@ /* Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #include "orconfig.h" diff --git a/src/test/test_relay.c b/src/test/test_relay.c index 6081956d46..a7fcad5401 100644 --- a/src/test/test_relay.c +++ b/src/test/test_relay.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2014-2015, The Tor Project, Inc. */ +/* Copyright (c) 2014-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #include "or.h" diff --git a/src/test/test_relaycell.c b/src/test/test_relaycell.c index 0a6fef729c..1cd9ff064b 100644 --- a/src/test/test_relaycell.c +++ b/src/test/test_relaycell.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2014-2015, The Tor Project, Inc. */ +/* Copyright (c) 2014-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /* Unit tests for handling different kinds of relay cell */ diff --git a/src/test/test_rendcache.c b/src/test/test_rendcache.c index 77796994b4..eaa8671af0 100644 --- a/src/test/test_rendcache.c +++ b/src/test/test_rendcache.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2010-2015, The Tor Project, Inc. */ +/* Copyright (c) 2010-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #include "orconfig.h" @@ -128,8 +128,8 @@ test_rend_cache_store_v2_desc_as_client(void *data) // Test bad base32 failure // This causes an assertion failure if we're running with assertions. - // But when doing coverage, we can test it. -#ifdef TOR_COVERAGE + // But when building without asserts, we can test it. +#ifdef DISABLE_ASSERTS_IN_UNIT_TESTS ret = rend_cache_store_v2_desc_as_client(desc_holder->desc_str, "!xqunszqnaolrrfmtzgaki7mxelgvkj", mock_rend_query, NULL); tt_int_op(ret, OP_EQ, RCS_BADDESC); diff --git a/src/test/test_replay.c b/src/test/test_replay.c index 7a0f098776..e882bc6164 100644 --- a/src/test/test_replay.c +++ b/src/test/test_replay.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2012-2015, The Tor Project, Inc. */ +/* Copyright (c) 2012-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #define REPLAYCACHE_PRIVATE diff --git a/src/test/test_routerkeys.c b/src/test/test_routerkeys.c index a60cba746e..24b0da1c46 100644 --- a/src/test/test_routerkeys.c +++ b/src/test/test_routerkeys.c @@ -1,6 +1,6 @@ /* Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #include "orconfig.h" diff --git a/src/test/test_routerlist.c b/src/test/test_routerlist.c index 8c4254ccd7..497606920d 100644 --- a/src/test/test_routerlist.c +++ b/src/test/test_routerlist.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2014, The Tor Project, Inc. */ +/* Copyright (c) 2014-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #include "orconfig.h" @@ -11,6 +11,7 @@ #define TOR_UNIT_TESTING #include "or.h" #include "config.h" +#include "connection.h" #include "container.h" #include "directory.h" #include "dirvote.h" @@ -29,7 +30,7 @@ extern const char AUTHORITY_SIGNKEY_2[]; extern const char AUTHORITY_CERT_3[]; extern const char AUTHORITY_SIGNKEY_3[]; -void construct_consensus(const char **consensus_text_md); +void construct_consensus(char **consensus_text_md); /* 4 digests + 3 sep + pre + post + NULL */ static char output[4*BASE64_DIGEST256_LEN+3+2+2+1]; @@ -119,7 +120,7 @@ test_routerlist_launch_descriptor_downloads(void *arg) } void -construct_consensus(const char **consensus_text_md) +construct_consensus(char **consensus_text_md) { networkstatus_t *vote = NULL; networkstatus_t *v1 = NULL, *v2 = NULL, *v3 = NULL; @@ -129,7 +130,6 @@ construct_consensus(const char **consensus_text_md) crypto_pk_t *sign_skey_leg=NULL; time_t now = time(NULL); smartlist_t *votes = NULL; - addr_policy_t *pol1 = NULL, *pol2 = NULL, *pol3 = NULL; int n_vrs; tt_assert(!dir_common_authority_pk_init(&cert1, &cert2, &cert3, @@ -140,7 +140,7 @@ construct_consensus(const char **consensus_text_md) dir_common_construct_vote_1(&vote, cert1, sign_skey_1, &dir_common_gen_routerstatus_for_v3ns, &v1, &n_vrs, now, 1); - + networkstatus_vote_free(vote); tt_assert(v1); tt_int_op(n_vrs, ==, 4); tt_int_op(smartlist_len(v1->routerstatus_list), ==, 4); @@ -148,7 +148,7 @@ construct_consensus(const char **consensus_text_md) dir_common_construct_vote_2(&vote, cert2, sign_skey_2, &dir_common_gen_routerstatus_for_v3ns, &v2, &n_vrs, now, 1); - + networkstatus_vote_free(vote); tt_assert(v2); tt_int_op(n_vrs, ==, 4); tt_int_op(smartlist_len(v2->routerstatus_list), ==, 4); @@ -160,7 +160,7 @@ construct_consensus(const char **consensus_text_md) tt_assert(v3); tt_int_op(n_vrs, ==, 4); tt_int_op(smartlist_len(v3->routerstatus_list), ==, 4); - + networkstatus_vote_free(vote); votes = smartlist_new(); smartlist_add(votes, v1); smartlist_add(votes, v2); @@ -176,16 +176,18 @@ construct_consensus(const char **consensus_text_md) tt_assert(*consensus_text_md); done: - if (vote) - tor_free(vote); - if (voter) - tor_free(voter); - if (pol1) - tor_free(pol1); - if (pol2) - tor_free(pol2); - if (pol3) - tor_free(pol3); + tor_free(voter); + networkstatus_vote_free(v1); + networkstatus_vote_free(v2); + networkstatus_vote_free(v3); + smartlist_free(votes); + authority_cert_free(cert1); + authority_cert_free(cert2); + authority_cert_free(cert3); + crypto_pk_free(sign_skey_1); + crypto_pk_free(sign_skey_2); + crypto_pk_free(sign_skey_3); + crypto_pk_free(sign_skey_leg); } static void @@ -194,7 +196,7 @@ test_router_pick_directory_server_impl(void *arg) (void)arg; networkstatus_t *con_md = NULL; - const char *consensus_text_md = NULL; + char *consensus_text_md = NULL; int flags = PDS_IGNORE_FASCISTFIREWALL|PDS_RETRY_IF_NO_SERVERS; or_options_t *options = get_options_mutable(); const routerstatus_t *rs = NULL; @@ -369,8 +371,83 @@ test_router_pick_directory_server_impl(void *arg) if (options->ReachableORAddresses || options->ReachableDirAddresses) policies_free_all(); + tor_free(consensus_text_md); + networkstatus_vote_free(con_md); +} + +connection_t *mocked_connection = NULL; + +/* Mock connection_get_by_type_addr_port_purpose by returning + * mocked_connection. */ +static connection_t * +mock_connection_get_by_type_addr_port_purpose(int type, + const tor_addr_t *addr, + uint16_t port, int purpose) +{ + (void)type; + (void)addr; + (void)port; + (void)purpose; + + return mocked_connection; } +#define TEST_ADDR_STR "127.0.0.1" +#define TEST_DIR_PORT 12345 + +static void +test_routerlist_router_is_already_dir_fetching(void *arg) +{ + (void)arg; + tor_addr_port_t test_ap, null_addr_ap, zero_port_ap; + + /* Setup */ + tor_addr_parse(&test_ap.addr, TEST_ADDR_STR); + test_ap.port = TEST_DIR_PORT; + tor_addr_make_null(&null_addr_ap.addr, AF_INET6); + null_addr_ap.port = TEST_DIR_PORT; + tor_addr_parse(&zero_port_ap.addr, TEST_ADDR_STR); + zero_port_ap.port = 0; + MOCK(connection_get_by_type_addr_port_purpose, + mock_connection_get_by_type_addr_port_purpose); + + /* Test that we never get 1 from a NULL connection */ + mocked_connection = NULL; + tt_assert(router_is_already_dir_fetching(&test_ap, 1, 1) == 0); + tt_assert(router_is_already_dir_fetching(&test_ap, 1, 0) == 0); + tt_assert(router_is_already_dir_fetching(&test_ap, 0, 1) == 0); + /* We always expect 0 in these cases */ + tt_assert(router_is_already_dir_fetching(&test_ap, 0, 0) == 0); + tt_assert(router_is_already_dir_fetching(NULL, 1, 1) == 0); + tt_assert(router_is_already_dir_fetching(&null_addr_ap, 1, 1) == 0); + tt_assert(router_is_already_dir_fetching(&zero_port_ap, 1, 1) == 0); + + /* Test that we get 1 with a connection in the appropriate circumstances */ + mocked_connection = connection_new(CONN_TYPE_DIR, AF_INET); + tt_assert(router_is_already_dir_fetching(&test_ap, 1, 1) == 1); + tt_assert(router_is_already_dir_fetching(&test_ap, 1, 0) == 1); + tt_assert(router_is_already_dir_fetching(&test_ap, 0, 1) == 1); + + /* Test that we get 0 even with a connection in the appropriate + * circumstances */ + tt_assert(router_is_already_dir_fetching(&test_ap, 0, 0) == 0); + tt_assert(router_is_already_dir_fetching(NULL, 1, 1) == 0); + tt_assert(router_is_already_dir_fetching(&null_addr_ap, 1, 1) == 0); + tt_assert(router_is_already_dir_fetching(&zero_port_ap, 1, 1) == 0); + + done: + /* If a connection is never set up, connection_free chokes on it. */ + if (mocked_connection) { + buf_free(mocked_connection->inbuf); + buf_free(mocked_connection->outbuf); + } + tor_free(mocked_connection); + UNMOCK(connection_get_by_type_addr_port_purpose); +} + +#undef TEST_ADDR_STR +#undef TEST_DIR_PORT + #define NODE(name, flags) \ { #name, test_routerlist_##name, (flags), NULL, NULL } #define ROUTER(name,flags) \ @@ -379,6 +456,7 @@ test_router_pick_directory_server_impl(void *arg) struct testcase_t routerlist_tests[] = { NODE(initiate_descriptor_downloads, 0), NODE(launch_descriptor_downloads, 0), + NODE(router_is_already_dir_fetching, TT_FORK), ROUTER(pick_directory_server_impl, TT_FORK), END_OF_TESTCASES }; diff --git a/src/test/test_scheduler.c b/src/test/test_scheduler.c index 79a5534505..977ce6f8ab 100644 --- a/src/test/test_scheduler.c +++ b/src/test/test_scheduler.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2014-2015, The Tor Project, Inc. */ +/* Copyright (c) 2014-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #include <math.h> diff --git a/src/test/test_slow.c b/src/test/test_slow.c index 32386b485e..c1d2e81914 100644 --- a/src/test/test_slow.c +++ b/src/test/test_slow.c @@ -1,6 +1,6 @@ /* Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** diff --git a/src/test/test_socks.c b/src/test/test_socks.c index 465e427930..6da09fd653 100644 --- a/src/test/test_socks.c +++ b/src/test/test_socks.c @@ -1,6 +1,6 @@ /* Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #include "or.h" diff --git a/src/test/test_switch_id.c b/src/test/test_switch_id.c index 3d9c1c8bba..322f5bdc7a 100644 --- a/src/test/test_switch_id.c +++ b/src/test/test_switch_id.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2015, The Tor Project, Inc. */ +/* Copyright (c) 2015-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #include "or.h" diff --git a/src/test/test_threads.c b/src/test/test_threads.c index fe88c9470f..1bbe6f5508 100644 --- a/src/test/test_threads.c +++ b/src/test/test_threads.c @@ -1,6 +1,6 @@ /* Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #include "orconfig.h" diff --git a/src/test/test_tortls.c b/src/test/test_tortls.c index 98f5facc11..973e727b46 100644 --- a/src/test/test_tortls.c +++ b/src/test/test_tortls.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2010-2015, The Tor Project, Inc. */ +/* Copyright (c) 2010-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #define TORTLS_PRIVATE @@ -539,10 +539,10 @@ test_tortls_x509_cert_get_id_digests(void *ignored) { (void)ignored; tor_x509_cert_t *cert; - digests_t *d; - const digests_t *res; + common_digests_t *d; + const common_digests_t *res; cert = tor_malloc_zero(sizeof(tor_x509_cert_t)); - d = tor_malloc_zero(sizeof(digests_t)); + d = tor_malloc_zero(sizeof(common_digests_t)); d->d[0][0] = 42; res = tor_x509_cert_get_id_digests(cert); @@ -1347,11 +1347,10 @@ test_tortls_get_buffer_sizes(void *ignored) tls->ssl->s3->wbuf.offset = 0; tls->ssl->s3->wbuf.left = 43; + ret = tor_tls_get_buffer_sizes(tls, &rbuf_c, &rbuf_b, &wbuf_c, &wbuf_b); #if OPENSSL_VERSION_NUMBER >= OPENSSL_V_SERIES(1,1,0) - ret = tor_tls_get_buffer_sizes(NULL, NULL, NULL, NULL, NULL); tt_int_op(ret, OP_EQ, -1); #else - ret = tor_tls_get_buffer_sizes(tls, &rbuf_c, &rbuf_b, &wbuf_c, &wbuf_b); tt_int_op(ret, OP_EQ, 0); tt_int_op(rbuf_c, OP_EQ, 0); tt_int_op(wbuf_c, OP_EQ, 0); @@ -1601,11 +1600,18 @@ test_tortls_block_renegotiation(void *ignored) tls = tor_malloc_zero(sizeof(tor_tls_t)); tls->ssl = tor_malloc_zero(sizeof(SSL)); tls->ssl->s3 = tor_malloc_zero(sizeof(SSL3_STATE)); - tls->ssl->s3->flags = 0x0010; +#ifndef SUPPORT_UNSAFE_RENEGOTIATION_FLAG +#define SSL3_FLAGS_ALLOW_UNSAFE_LEGACY_RENEGOTIATION 0 +#endif + + tls->ssl->s3->flags = SSL3_FLAGS_ALLOW_UNSAFE_LEGACY_RENEGOTIATION; tor_tls_block_renegotiation(tls); - tt_assert(!(SSL_get_options(tls->ssl) & 0x0010)); +#ifndef OPENSSL_1_1_API + tt_assert(!(tls->ssl->s3->flags & + SSL3_FLAGS_ALLOW_UNSAFE_LEGACY_RENEGOTIATION)); +#endif done: tor_free(tls->ssl->s3); @@ -1623,7 +1629,9 @@ test_tortls_unblock_renegotiation(void *ignored) tls->ssl = tor_malloc_zero(sizeof(SSL)); tor_tls_unblock_renegotiation(tls); - tt_assert(SSL_get_options(tls->ssl) & 0x00040000L); + tt_uint_op(SSL_get_options(tls->ssl) & + SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION, OP_EQ, + SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION); done: tor_free(tls->ssl); @@ -1907,6 +1915,7 @@ fixed_ssl_shutdown(SSL *s) return fixed_ssl_shutdown_result; } +#ifndef LIBRESSL_VERSION_NUMBER static int fixed_ssl_state_to_set; static tor_tls_t *fixed_tls; @@ -1924,6 +1933,7 @@ setting_version_and_state_ssl_shutdown(SSL *s) s->version = SSL2_VERSION; return fixed_ssl_shutdown_result; } +#endif static int dummy_handshake_func(SSL *s) @@ -1957,6 +1967,7 @@ test_tortls_shutdown(void *ignored) ret = tor_tls_shutdown(tls); tt_int_op(ret, OP_EQ, -9); +#ifndef LIBRESSL_VERSION_NUMBER tls->ssl->handshake_func = dummy_handshake_func; fixed_ssl_read_result_index = 0; @@ -2018,6 +2029,7 @@ test_tortls_shutdown(void *ignored) method->ssl_shutdown = setting_version_and_state_ssl_shutdown; ret = tor_tls_shutdown(tls); tt_int_op(ret, OP_EQ, TOR_TLS_ERROR_MISC); +#endif done: teardown_capture_of_logs(previous_log); @@ -2080,6 +2092,7 @@ test_tortls_read(void *ignored) ret = tor_tls_read(tls, buf, 10); tt_int_op(negotiated_callback_called, OP_EQ, 1); +#ifndef LIBRESSL_VERSION_NUMBER fixed_ssl_read_result_index = 0; fixed_ssl_read_result[0] = 0; tls->ssl->version = SSL2_VERSION; @@ -2087,7 +2100,7 @@ test_tortls_read(void *ignored) ret = tor_tls_read(tls, buf, 10); tt_int_op(ret, OP_EQ, TOR_TLS_CLOSE); tt_int_op(tls->state, OP_EQ, TOR_TLS_ST_CLOSED); - +#endif // TODO: fill up done: @@ -2594,14 +2607,14 @@ test_tortls_create_certificate(void *ignored) tt_assert(!ret); fixed_crypto_pk_get_evp_pkey_result_index = 0; - fixed_crypto_pk_get_evp_pkey_result[0] = tor_malloc_zero(sizeof(EVP_PKEY)); + fixed_crypto_pk_get_evp_pkey_result[0] = EVP_PKEY_new(); fixed_crypto_pk_get_evp_pkey_result[1] = NULL; ret = tor_tls_create_certificate(pk1, pk2, "hello", "hello2", 1); tt_assert(!ret); fixed_crypto_pk_get_evp_pkey_result_index = 0; - fixed_crypto_pk_get_evp_pkey_result[0] = tor_malloc_zero(sizeof(EVP_PKEY)); - fixed_crypto_pk_get_evp_pkey_result[1] = tor_malloc_zero(sizeof(EVP_PKEY)); + fixed_crypto_pk_get_evp_pkey_result[0] = EVP_PKEY_new(); + fixed_crypto_pk_get_evp_pkey_result[1] = EVP_PKEY_new(); ret = tor_tls_create_certificate(pk1, pk2, "hello", "hello2", 1); tt_assert(!ret); diff --git a/src/test/test_util.c b/src/test/test_util.c index 37f7d938ea..a63b4b859a 100644 --- a/src/test/test_util.c +++ b/src/test/test_util.c @@ -1,6 +1,6 @@ /* Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #include "orconfig.h" @@ -4364,7 +4364,8 @@ test_util_socket(void *arg) (void)arg; fd1 = tor_open_socket_with_extensions(domain, SOCK_STREAM, 0, 0, 0); - if (SOCK_ERR_IS_EPROTO(fd1)) { + int err = tor_socket_errno(fd1); + if (fd1 < 0 && err == SOCK_ERRNO(EPROTONOSUPPORT)) { /* Assume we're on an IPv4-only or IPv6-only system, and give up now. */ goto done; } diff --git a/src/test/test_util_format.c b/src/test/test_util_format.c index 45a28ccaac..a25054cd0a 100644 --- a/src/test/test_util_format.c +++ b/src/test/test_util_format.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2010-2015, The Tor Project, Inc. */ +/* Copyright (c) 2010-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #include "orconfig.h" diff --git a/src/test/test_util_process.c b/src/test/test_util_process.c index 0a4354c043..45c22ef47f 100644 --- a/src/test/test_util_process.c +++ b/src/test/test_util_process.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2010-2015, The Tor Project, Inc. */ +/* Copyright (c) 2010-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #define UTIL_PROCESS_PRIVATE diff --git a/src/test/test_util_slow.c b/src/test/test_util_slow.c index dcd0c9af36..1e7160598c 100644 --- a/src/test/test_util_slow.c +++ b/src/test/test_util_slow.c @@ -1,6 +1,6 @@ /* Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #include "orconfig.h" diff --git a/src/test/test_workqueue.c b/src/test/test_workqueue.c index 1202f80fa3..cbcf596b22 100644 --- a/src/test/test_workqueue.c +++ b/src/test/test_workqueue.c @@ -1,6 +1,6 @@ /* Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ #include "or.h" diff --git a/src/test/testing_common.c b/src/test/testing_common.c index e20e9e6095..aeb1fa794d 100644 --- a/src/test/testing_common.c +++ b/src/test/testing_common.c @@ -1,6 +1,6 @@ /* Copyright (c) 2001-2004, Roger Dingledine. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2015, The Tor Project, Inc. */ + * Copyright (c) 2007-2016, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /* Ordinarily defined in tor_main.c; this bit is just here to provide one @@ -228,6 +228,9 @@ main(int c, const char **v) int loglevel = LOG_ERR; int accel_crypto = 0; + /* We must initialise logs before we call tor_assert() */ + init_logging(1); + #ifdef USE_DMALLOC { int r = CRYPTO_set_mem_ex_functions(tor_malloc_, tor_realloc_, tor_free_); @@ -238,8 +241,12 @@ main(int c, const char **v) update_approx_time(time(NULL)); options = options_new(); tor_threads_init(); + + struct tor_libevent_cfg cfg; + memset(&cfg, 0, sizeof(cfg)); + tor_libevent_initialize(&cfg); + control_initialize_event_queue(); - init_logging(1); configure_backtrace_handler(get_version()); for (i_out = i = 1; i < c; ++i) { diff --git a/src/trunnel/ed25519_cert.c b/src/trunnel/ed25519_cert.c index ee010dbff9..f495743667 100644 --- a/src/trunnel/ed25519_cert.c +++ b/src/trunnel/ed25519_cert.c @@ -1,4 +1,4 @@ -/* ed25519_cert.c -- generated by Trunnel v1.4.3. +/* ed25519_cert.c -- generated by Trunnel v1.4.4. * https://gitweb.torproject.org/trunnel.git * You probably shouldn't edit this file. */ @@ -289,7 +289,8 @@ ed25519_cert_extension_encode(uint8_t *output, const size_t avail, const ed25519 trunnel_assert(written <= avail); if (avail - written < elt_len) goto truncated; - memcpy(ptr, obj->un_unparsed.elts_, elt_len); + if (elt_len) + memcpy(ptr, obj->un_unparsed.elts_, elt_len); written += elt_len; ptr += elt_len; } break; @@ -374,7 +375,8 @@ ed25519_cert_extension_parse_into(ed25519_cert_extension_t *obj, const uint8_t * /* Parse u8 un_unparsed[] */ TRUNNEL_DYNARRAY_EXPAND(uint8_t, &obj->un_unparsed, remaining, {}); obj->un_unparsed.n_ = remaining; - memcpy(obj->un_unparsed.elts_, ptr, remaining); + if (remaining) + memcpy(obj->un_unparsed.elts_, ptr, remaining); ptr += remaining; remaining -= remaining; break; } diff --git a/src/trunnel/ed25519_cert.h b/src/trunnel/ed25519_cert.h index face810dbe..75a82d8aff 100644 --- a/src/trunnel/ed25519_cert.h +++ b/src/trunnel/ed25519_cert.h @@ -1,4 +1,4 @@ -/* ed25519_cert.h -- generated by by Trunnel v1.4.3. +/* ed25519_cert.h -- generated by by Trunnel v1.4.4. * https://gitweb.torproject.org/trunnel.git * You probably shouldn't edit this file. */ diff --git a/src/trunnel/link_handshake.c b/src/trunnel/link_handshake.c index f9b55f0739..3ef7341ae9 100644 --- a/src/trunnel/link_handshake.c +++ b/src/trunnel/link_handshake.c @@ -1,4 +1,4 @@ -/* link_handshake.c -- generated by Trunnel v1.4.3. +/* link_handshake.c -- generated by Trunnel v1.4.4. * https://gitweb.torproject.org/trunnel.git * You probably shouldn't edit this file. */ @@ -537,7 +537,8 @@ certs_cell_cert_encode(uint8_t *output, const size_t avail, const certs_cell_cer trunnel_assert(written <= avail); if (avail - written < elt_len) goto truncated; - memcpy(ptr, obj->body.elts_, elt_len); + if (elt_len) + memcpy(ptr, obj->body.elts_, elt_len); written += elt_len; ptr += elt_len; } @@ -589,7 +590,8 @@ certs_cell_cert_parse_into(certs_cell_cert_t *obj, const uint8_t *input, const s CHECK_REMAINING(obj->cert_len, truncated); TRUNNEL_DYNARRAY_EXPAND(uint8_t, &obj->body, obj->cert_len, {}); obj->body.n_ = obj->cert_len; - memcpy(obj->body.elts_, ptr, obj->cert_len); + if (obj->cert_len) + memcpy(obj->body.elts_, ptr, obj->cert_len); ptr += obj->cert_len; remaining -= obj->cert_len; trunnel_assert(ptr + remaining == input + len_in); return len_in - remaining; @@ -840,7 +842,8 @@ rsa_ed_crosscert_encode(uint8_t *output, const size_t avail, const rsa_ed_crossc trunnel_assert(written <= avail); if (avail - written < elt_len) goto truncated; - memcpy(ptr, obj->sig.elts_, elt_len); + if (elt_len) + memcpy(ptr, obj->sig.elts_, elt_len); written += elt_len; ptr += elt_len; } @@ -899,7 +902,8 @@ rsa_ed_crosscert_parse_into(rsa_ed_crosscert_t *obj, const uint8_t *input, const CHECK_REMAINING(obj->sig_len, truncated); TRUNNEL_DYNARRAY_EXPAND(uint8_t, &obj->sig, obj->sig_len, {}); obj->sig.n_ = obj->sig_len; - memcpy(obj->sig.elts_, ptr, obj->sig_len); + if (obj->sig_len) + memcpy(obj->sig.elts_, ptr, obj->sig_len); ptr += obj->sig_len; remaining -= obj->sig_len; trunnel_assert(ptr + remaining == input + len_in); return len_in - remaining; @@ -1467,7 +1471,8 @@ auth1_encode(uint8_t *output, const size_t avail, const auth1_t *obj, const auth trunnel_assert(written <= avail); if (avail - written < elt_len) goto truncated; - memcpy(ptr, obj->sig.elts_, elt_len); + if (elt_len) + memcpy(ptr, obj->sig.elts_, elt_len); written += elt_len; ptr += elt_len; } @@ -1576,7 +1581,8 @@ auth1_parse_into(auth1_t *obj, const uint8_t *input, const size_t len_in, const /* Parse u8 sig[] */ TRUNNEL_DYNARRAY_EXPAND(uint8_t, &obj->sig, remaining, {}); obj->sig.n_ = remaining; - memcpy(obj->sig.elts_, ptr, remaining); + if (remaining) + memcpy(obj->sig.elts_, ptr, remaining); ptr += remaining; remaining -= remaining; trunnel_assert(ptr + remaining == input + len_in); return len_in - remaining; diff --git a/src/trunnel/link_handshake.h b/src/trunnel/link_handshake.h index 60bc28fa33..2749ec7dd4 100644 --- a/src/trunnel/link_handshake.h +++ b/src/trunnel/link_handshake.h @@ -1,4 +1,4 @@ -/* link_handshake.h -- generated by by Trunnel v1.4.3. +/* link_handshake.h -- generated by by Trunnel v1.4.4. * https://gitweb.torproject.org/trunnel.git * You probably shouldn't edit this file. */ diff --git a/src/trunnel/pwbox.c b/src/trunnel/pwbox.c index a80fbb949b..9b348a9b30 100644 --- a/src/trunnel/pwbox.c +++ b/src/trunnel/pwbox.c @@ -1,4 +1,4 @@ -/* pwbox.c -- generated by Trunnel v1.4.3. +/* pwbox.c -- generated by Trunnel v1.4.4. * https://gitweb.torproject.org/trunnel.git * You probably shouldn't edit this file. */ @@ -362,7 +362,8 @@ pwbox_encoded_encode(uint8_t *output, size_t avail, const pwbox_encoded_t *obj) trunnel_assert(written <= avail); if (avail - written < elt_len) goto truncated; - memcpy(ptr, obj->skey_header.elts_, elt_len); + if (elt_len) + memcpy(ptr, obj->skey_header.elts_, elt_len); written += elt_len; ptr += elt_len; } @@ -380,7 +381,8 @@ pwbox_encoded_encode(uint8_t *output, size_t avail, const pwbox_encoded_t *obj) trunnel_assert(written <= avail); if (avail - written < elt_len) goto truncated; - memcpy(ptr, obj->data.elts_, elt_len); + if (elt_len) + memcpy(ptr, obj->data.elts_, elt_len); written += elt_len; ptr += elt_len; } trunnel_assert(written <= avail); @@ -460,7 +462,8 @@ pwbox_encoded_parse_into(pwbox_encoded_t *obj, const uint8_t *input, const size_ CHECK_REMAINING(obj->header_len, truncated); TRUNNEL_DYNARRAY_EXPAND(uint8_t, &obj->skey_header, obj->header_len, {}); obj->skey_header.n_ = obj->header_len; - memcpy(obj->skey_header.elts_, ptr, obj->header_len); + if (obj->header_len) + memcpy(obj->skey_header.elts_, ptr, obj->header_len); ptr += obj->header_len; remaining -= obj->header_len; /* Parse u8 iv[16] */ @@ -476,7 +479,8 @@ pwbox_encoded_parse_into(pwbox_encoded_t *obj, const uint8_t *input, const size_ /* Parse u8 data[] */ TRUNNEL_DYNARRAY_EXPAND(uint8_t, &obj->data, remaining, {}); obj->data.n_ = remaining; - memcpy(obj->data.elts_, ptr, remaining); + if (remaining) + memcpy(obj->data.elts_, ptr, remaining); ptr += remaining; remaining -= remaining; if (remaining != 0) goto fail; diff --git a/src/trunnel/pwbox.h b/src/trunnel/pwbox.h index c357932681..e69e2c1a0e 100644 --- a/src/trunnel/pwbox.h +++ b/src/trunnel/pwbox.h @@ -1,4 +1,4 @@ -/* pwbox.h -- generated by by Trunnel v1.4.3. +/* pwbox.h -- generated by by Trunnel v1.4.4. * https://gitweb.torproject.org/trunnel.git * You probably shouldn't edit this file. */ diff --git a/src/win32/orconfig.h b/src/win32/orconfig.h index c0b14e5304..407ffc00fc 100644 --- a/src/win32/orconfig.h +++ b/src/win32/orconfig.h @@ -220,9 +220,6 @@ /* Define to 1 if you have the ANSI C header files. */ #define STDC_HEADERS -/* Define to 1 if time_t is signed. */ -#define TIME_T_IS_SIGNED - /* Define to 1 iff unaligned int access is allowed */ #define UNALIGNED_INT_ACCESS_OK @@ -232,7 +229,7 @@ #define USING_TWOS_COMPLEMENT /* Version number of package */ -#define VERSION "0.2.8.0-alpha-dev" +#define VERSION "0.2.8.1-alpha-dev" |